CentOS 7 官方預設倉庫已將 MySQL 替換為 MariaDB,直接 yum install mysql-server 會裝上 MariaDB。本文記錄在騰訊雲 CentOS 7.0 上,透過官方 RPM 檔引入 MySQL 社群版倉庫,安裝 MySQL 5.6 的完整流程。
[root@VM_47_56_centos ~]# yum list | grep mysql akonadi-mysql.x86_64 1.9.2-4.el7 base apr-util-mysql.x86_64 1.5.2-6.el7 base mysql-proxy.x86_64 0.8.5-2.el7 epel ... # 找不到 mysql-server
wget https://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm sudo rpm -ivh mysql-community-release-el7-5.noarch.rpm
安裝完成後,/etc/yum.repos.d/ 會新增兩個檔案:
mysql-community.repomysql-community-source.reposudo yum install mysql-server
輸出確認會顯示來自 mysql56-community 倉庫的套件:
正在安裝: mysql-community-libs x86_64 5.6.27-2.el7 mysql56-community 2.0 M mysql-community-server x86_64 5.6.27-2.el7 mysql56-community 58 M 為依賴而安裝: mysql-community-client x86_64 5.6.27-2.el7 mysql56-community 19 M mysql-community-common x86_64 5.6.27-2.el7 mysql56-community 256 k numactl-libs x86_64 2.0.9-5.el7_1
service mysqld start chkconfig mysqld on
# 1. 直接登入
mysql -u root
# 2. 若報錯 ERROR 2002 (HY000): Can't connect to local MySQL server through socket
# 修正資料目錄權限並重啟
sudo chown -R mysql:mysql /var/lib/mysql
service mysqld restart
# 3. 設定新密碼
mysql -u root
mysql> USE mysql;
mysql> UPDATE user SET password=PASSWORD('your_strong_password') WHERE user='root';
mysql> FLUSH PRIVILEGES;
mysql> EXIT;
sudo vim /etc/sysconfig/iptables # 加入規則 -A INPUT -p tcp -m state --state NEW -m tcp --dport 3306 -j ACCEPT sudo service iptables restart
mysql -h localhost -u root -p mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'your_password' WITH GRANT OPTION; mysql> FLUSH PRIVILEGES;
mysql -V # mysql Ver 14.14 Distrib 5.6.27, for Linux (x86_64)
firewalld,若用 iptables 需先停用 firewalld/var/lib/mysql 權限必須屬於 mysql:mysql,否則啟動失敗mysql_secure_installation 強化安全性