CentOS 6.4 默認 yum 安裝 MySQL 5.1 版本過舊,本文記錄從源碼編譯安裝 MySQL 5.6.30 的完整流程及後續維護要點。
# 檢查已安裝包 rpm -qa | grep mysql # 普通卸載 rpm -e mysql # 強制卸載(有依賴時) rpm -e --nodeps mysql
yum -y install make gcc-c++ cmake bison-devel ncurses-devel
wget https://cdn.mysql.com/Downloads/MySQL-5.6/mysql-5.6.30.tar.gz tar xvf mysql-5.6.30.tar.gz cd mysql-5.6.30 cmake \ -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \ -DMYSQL_DATADIR=/usr/local/mysql/data \ -DSYSCONFDIR=/etc \ -DWITH_MYISAM_STORAGE_ENGINE=1 \ -DWITH_INNOBASE_STORAGE_ENGINE=1 \ -DWITH_MEMORY_STORAGE_ENGINE=1 \ -DWITH_READLINE=1 \ -DMYSQL_UNIX_ADDR=/var/lib/mysql/mysql.sock \ -DMYSQL_TCP_PORT=3306 \ -DENABLED_LOCAL_INFILE=1 \ -DWITH_PARTITION_STORAGE_ENGINE=1 \ -DEXTRA_CHARSETS=all \ -DDEFAULT_CHARSET=utf8 \ -DDEFAULT_COLLATION=utf8_general_ci make && make install
編譯約需 30 分鐘,參數詳見 官方文檔。
cat /etc/passwd | grep mysql || useradd -g mysql mysql groupadd mysql chown -R mysql:mysql /usr/local/mysql
cd /usr/local/mysql scripts/mysql_install_db --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --user=mysql
注意:/etc/my.cnf 會干擾源碼安裝配置,需重命名為 /etc/my.cnf.bak。yum update 後也需檢查是否重新生成。
cp support-files/mysql.server /etc/init.d/mysql chkconfig mysql on service mysql start
echo 'PATH=/usr/local/mysql/bin:$PATH' >> /etc/profile
echo 'export PATH' >> /etc/profile
source /etc/profile
mysql -uroot
mysql> SET PASSWORD = PASSWORD('123456');
mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'172.16.%' IDENTIFIED BY 'password' WITH GRANT OPTION;
CentOS 6 (iptables):
# 編輯 /etc/sysconfig/iptables,在 22 端口規則下添加 -A INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT service iptables restart
CentOS 7 (firewalld):
firewall-cmd --zone=public --add-port=3306/tcp --permanent firewall-cmd --reload
-- 1. 創建用戶
INSERT INTO mysql.user(Host,User,Password) VALUES('%','dev',PASSWORD('yihen382465'));
-- 若報錯 Field 'ssl_cipher' doesn't have a default value:
-- 修改 sql_mode=NO_ENGINE_SUBSTITUTION 後重啟
-- 2. 創建數據庫
CREATE DATABASE distributor DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
-- 3. 授權
GRANT ALL PRIVILEGES ON distributor.* TO 'dev'@'localhost' IDENTIFIED BY '123456';
-- 4. 刷新權限
FLUSH PRIVILEGES;
安裝完成,可遠程連接驗證。建議定期備份 /usr/local/mysql/data 目錄。