記錄一次在 CentOS 7 上完整替換 MySQL 的實操過程,含舊版清理、yum 安裝、密碼初始化、遠程授權、字符集配置、開機自啟、基礎 SQL 測試。適用於 MySQL 5.1/5.5/5.6/5.7 通用流程。
yum remove mysql mysql-server mysql-libs compat-mysql51 rm -rf /var/lib/mysql rm -f /etc/my.cnf rpm -qa | grep mysql # 確認無殘留包,有則繼續 rpm -e --nodeps
yum -y install mysql-server yum -y install php-mysql
service mysqld start /usr/bin/mysqladmin -u root password 'NewPass123!' # 若報 socket 錯誤,先確認服務已啟動
mysql -u root -p GRANT SELECT,INSERT,UPDATE,DELETE ON *.* TO 'root'@'192.168.1.101' IDENTIFIED BY 'NewPass123!'; GRANT SELECT,INSERT,UPDATE,DELETE ON *.* TO 'root'@'127.0.0.1' IDENTIFIED BY 'NewPass123!'; FLUSH PRIVILEGES;
cp /usr/share/mysql/my-medium.cnf /etc/my.cnf # 編輯 /etc/my.cnf [client] default-character-set=utf8 [mysqld] default-character-set=utf8 character-set-server=utf8 collation-server=utf8_general_ci
chkconfig mysqld on # 或編輯 /etc/rc.local 添加 /usr/share/mysql/mysql.server start
service mysqld restart mysql -u root -p CREATE DATABASE xxx; USE xxx; CREATE TABLE dbtest (id INT, name VARCHAR(10)); SHOW TABLES; INSERT INTO dbtest VALUES (1, 'test'); SELECT * FROM dbtest;
mysql> CREATE DATABASE xxx; Query OK, 1 row affected (0.06 sec) mysql> SHOW DATABASES; +--------------------+ | Database | +--------------------+ | information_schema | | mysql | | test | | xxx | +--------------------+ 4 rows in set (0.06 sec) mysql> CREATE TABLE dbtest (id INT, name VARCHAR(10)); Query OK, 0 rows affected (0.07 sec) mysql> SHOW TABLES; +-----------------+ | Tables_in_xxx | +-----------------+ | dbtest | +-----------------+ 1 row in set (0.01 sec)
Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock':服務未啟動或 socket 路徑不一致,檢查 service mysqld status、my.cnf 中 socket 參數。ERROR 1064:SQL 語法錯誤,注意 VARCHAR(20) 需指定長度,INT id NOT NULL 列定義順序。