mysql5.6.39源碼編譯安裝、配置!

一:mysql的源碼編譯安裝
①yum install -y gcc gcc-c++ make openssl openssl-devel cmake ncurses ncurses-devel bison bison-devel libaio libaio-devel
②#創建mysql用戶:useradd -M -s /sbin/nologin mysql
cd /usr/local/src
wget 'https://cdn.mysql.com//Downloads/MySQL-5.6/mysql-5.6.39.tar.gz'
tar -zxvf mysql-5.6.39.tar.gz
cd mysql-5.6.39

cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DMYSQL_DATADIR=/data/mysql \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DEXTRA_CHARSETS=all \
-DWITH_DEBUG=0 \
-DWITH_SSL=yes \
-DENABLED_LOCAL_INFILE=1\
-DWITH_READLINE=1\
-DWITH_INNOBASE_STORAGE_ENGINE=1\
-DWITH_ARCHIVE_STORAGE_ENGINE=1\
-DWITH_BLACKHOLE_STORAGE_ENGINE=1
mysql5.6.39源碼編譯安裝、配置!

make -j 2 && make install
注:-j 用來指定CPU核心數,可加快編譯速度,不加也可以
【編譯有錯誤後,執行make clean ,然後要刪除 rm CMakeCache.txt ,才能重新編譯】
③#mysql.server腳本用來管理mysql服務器的啓動和關閉
cp support-files/mysql.server /etc/init.d/mysqld
chmod a+x /etc/init.d/mysqld
④檢查mysql是否安裝成功: /usr/local/mysql/bin/mysql --version
mysql5.6.39源碼編譯安裝、配置!

二:Mysql的數據初始化及管理:
①vim /etc/my.cnf 將以下內容複製到文件中
[mysqld]
bind-address=127.0.0.1
port=3306
datadir=/data/mysql
socket=/tmp/mysql.sock
user=mysql
skip-name-resolve
slow_query_log=on
long_query_time=1
slow_query_log_file=/data/mysql/mysql-slow.log
expire_logs_days=2
innodb-file-per-table=1
innodb_flush_log_at_trx_commit = 2
log_warnings = 1
max_allowed_packet = 512M
connect_timeout = 60
net_read_timeout = 120

[mysqld_safe]
log-error=/data/mysql/mysqld.log
pid-file=/data/mysql/mysqld.pid
②mysql配置講解
bind-address=127.0.0.1
port=3306 #監聽ip和端口
datadir=/data/mysql #數據目錄
socket=/tmp/mysql.sock #指定socket的路徑,默認就是/tmp/mysql.sock
innodb-file-per-table=1 #獨立表空間
innodb_flush_log_at_trx_commit = 2 #配置爲1表示數據寫入後馬上寫到磁盤,系統壓力大。配置爲2的話,會每秒執行一次寫盤的操作,壓力較小
log_warnings = 1 #警告信息寫入日誌
③Mysql啓動前需要進行數據的初始化
mkdir -pv /data/mysql
chown mysql:mysql /data/mysql
yum install -y perl-Module-Install #數據初始化腳本依賴於perl,所以先安裝一個perl
/usr/local/mysql/scripts/mysql_install_db --basedir=/usr/local/mysql --user=mysql --datadir=/data/mysql/ #Mysql初始化數據目錄

④初始化完啓動mysql服務器
nohup /usr/local/mysql/bin/mysqld_safe --defaults-file=/etc/my.cnf & #手動啓動
mysqladmin -uroot -p -S /data/mysql/mysql.sock shutdown #手動關閉
/etc/init.d/mysqld start #用提供的腳本啓動
/etc/init.d/mysqld stop #用提供的腳本關閉
⑤使用systemctl管理:vim /usr/lib/systemd/system/mysqld.service 複製以下內容:
[Unit]
Description=mysqld
After=network.target remote-fs.target nss-lookup.target

[Service]
Type=forking
ExecStart=/etc/init.d/mysqld start
ExecStop=/etc/init.d/mysqld stop

[Install]
WantedBy=multi-user.target
⑥管理mysql
systemctl enable mysqld #開機啓動mysqld
systemctl start mysqld #啓動mysqld
ps auxf|grep mysql|grep -v grep #有進程在
netstat -tulnp|grep mysql #有端口監聽
三:Mysql客戶端使用和遠程登錄說明
① mysql服務器有提供客戶端工具:
ln -s /usr/local/mysql/bin/mysql /usr/local/bin/ #mysql命令經常使用
mysql -uroot #默認連接到localhost,密碼爲空
② mysql默認的密碼是空的,但只允許本機登錄
mysql -uroot -h 127.0.0.1 #爲什麼無需密碼就能登錄
mysql> select user,password,host from mysql.user;
mysql5.6.39源碼編譯安裝、配置!

③ 本地登錄mysql安全加固
delete from mysql.user where user=''; #刪除空用戶
update mysql.user set password=PASSWORD('password') where user='root'; #設置密碼
select user,password,host from mysql.user; #密碼加密
flush privileges; #刷新權限
④ 登錄有密碼的mysql服務器:mysql -uroot -p -h 127.0.0.1
⑤給內網ip、外網ip授權
mysql -uroot -h x.x.x.x #默認使用內網ip無法登錄,因爲沒在白名單內
GRANT ALL PRIVILEGES ON . TO '用戶名'@'內網IP或公網IP' IDENTIFIED BY '密碼' WITH GRANT OPTION;
flush privileges;
內網服務器登錄: mysql -uroot -p -h xxx.xxx.xx
四:Mysql的兩個重要日誌
①mysql重要的兩個日誌文件
錯誤日誌 #當mysql啓動有問題的時候,我們需要藉助這個日誌進行排查
慢日誌 #當業務出現慢或者超時的時候,我們需要觀查mysql的慢日誌是否過多
mysql的錯誤日誌:log-error=/data/mysql/mysqld.log
觀察mysql錯誤日誌:tail -f /data/mysql/mysqld.log
②mysql慢日誌說明:
slow_query_log=on
long_query_time=1
slow_query_log_file=/data/mysql/mysql-slow.log

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章