cenos下安裝MySQL最新版(5.7.18)記錄。附卸載老版本過程
首先說明:老版本數據庫沒有數據,所以無數據備份過程。如果你在升級數據庫過程裏,需要備份數據,請另外自行處理。
1、下載最新版MySQL、解壓待用
wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.18-linux-glibc2.5-x86_64.tar.gz #下載
tar -zxvf mysql-5.7.18-linux-glibc2.5-x86_64.tar.gz #解壓
cp -r mysql-5.7.18-linux-glibc2.5-x86_64 /usr/local/mysql #復制到安裝目錄
2、添加用戶
#添加用戶組 groupadd mysql #添加用戶mysql 到用戶組mysql useradd-g mysql mysql
3、創建數據文件存放目錄(沒有放在MySQL默認的目錄)
mkdir /datas mkdir /datas/mysql chown -R mysql.mysql /datas/mysql chmod 777 /datas/mysql
4、卸載老版本(這裏可能會遇到各種問題)
rpm -qa|grep -i mysql #查找已有的包,當時我有2個(php-mysql-5.4.16-42.el7.x86_64、perl-DBD-MySQL-4.023-5.el7.x86_64)
rpm -ev php-mysql-5.4.16-42.el7.x86_64 #刪除其中一個,正常,然後另外一個刪不掉,有依賴安裝包yum -y remove perl-DBD-MySQL #這樣才終於卸載掉
具體這個步驟,參考這裏,感謝原作者:
http://www.cnblogs.com/kerrycode/p/4364465.html
http://blog.csdn.net/tjcyjd/article/details/52189182
http://www.jb51.net/os/RedHat/80289.html
5、安裝新的MySQL,當前用戶在 /var/local/mysql/ 目錄下:
./bin/mysqld --initialize --user=mysql --datadir=/datas/mysql #安裝
./support-files/mysql.server start #啟動服務
這裏有可能無法啟動,問題:mysqld_safe error不能創建錯誤日誌文件
cd /var/log/mariadb/
vi mariadb.log #新建一個文件
chown mysql.mysql mariadb.log
chmod 777 mariadb.log
再啟動就ok了
參考,感謝原作者:http://tieba.baidu.com/p/5103002724
ps aux | grep mysql #查看一下進程
/usr/local/mysql/bin/mysql -V #查看版本,是不是正確的
6、安裝正常後,就是初始配置了。包括:修改root密碼、修改端口、允許用戶遠程登陸
不過安裝過程,要註意,有個初始密碼【(YngqRv7m).e】(每次每個人都不同,先記著,一會兒登陸的時候用):
2017-06-29T02:20:02.092807Z 1 [Note] A temporary password is generated for [email protected]: (YngqRv7m).e
端口:
vi /etc/my.cnf #編輯配置文件
修改如下:
[mysqld]
datadir=/datas/mysql
port=33316
[client]
port=33316
修改root用戶:
登陸mysql:
/usr/local/mysql/bin/mysql -uroot -p
如果報錯 Can’t connect to local MySQL server through socket
應該是“/etc/my.cnf”配置文件的問題了。解決辦法是修改“/etc/my.cnf”配置文件,在配置文件中添加“[client]”選項和“[mysql]”選項,並使用這兩個選項下的“socket”參數值,與“[mysqld]”選項下的“socket”參數值,指向的socket文件路徑完全一致。如下,繼續修改my.cnf。參考,感謝作者: http://www.aiezu.com/db/mysql_cant_connect_through_socket.html
[mysqld] datadir=/datas/mysql socket=/var/lib/mysql/mysql.sock port=33316 [client] default-character-set=utf8 socket=/var/lib/mysql/mysql.sock port=33316 [mysqld_safe] log-error=/var/log/mariadb/mariadb.log pid-file=/var/run/mariadb/mariadb.pid
然後登陸進去,修改root
/usr/local/mysql/bin/mysql -uroot -p #然後輸入上面記下的密碼 (YngqRv7m).e
操作可能會報錯:
mac mysql error You must reset your password using ALTER USER statement before executing this statement.
安裝完mysql 之後,登陸以後,不管運行任何命令,總是提示這個。那麽:
SET PASSWORD = PASSWORD(‘your new password‘);
ALTER USER [email protected] PASSWORD EXPIRE NEVER;
flush privileges;
完成以上三步退出再登,使用新設置的密碼就行了。參考,感謝作者:http://www.cnblogs.com/debmzhang/p/5013540.html
然後是設置允許遠程登錄:
需要手動增加可以遠程訪問數據庫的用戶。
方法一、本地登入mysql,更改 "mysql" 數據庫裏的 "user" 表裏的 "host" 項,將"localhost"改為"%"
mysql>use mysql; mysql>update user set host = ‘%‘ where user = ‘root‘; mysql>select host, user from user;
方法二、直接授權(推薦)
從任何主機上使用root用戶,密碼:youpassword(你的root密碼)連接到mysql服務器:
GRANT ALL PRIVILEGES ON *.* TO ‘root‘@‘%‘ IDENTIFIED BY ‘youpassword‘ WITH GRANT OPTION; FLUSH PRIVILEGES
我用方法一不行,繼續方法二才好。沒測試是不是方法執行了還需要重啟mysql,按道理應該不用。
參考,感謝作者:http://www.cnblogs.com/hyzhou/archive/2011/12/06/2278236.html
cenos下安裝MySQL最新版(5.7.18)記錄。附卸載老版本過程