1. 程式人生 > >cenos下安裝MySQL最新版(5.7.18)記錄。附卸載老版本過程

cenos下安裝MySQL最新版(5.7.18)記錄。附卸載老版本過程

date -s lib 包括 localhost utf8 lte 作者 detail

首先說明:老版本數據庫沒有數據,所以無數據備份過程。如果你在升級數據庫過程裏,需要備份數據,請另外自行處理。

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)記錄。附卸載老版本過程