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 mysql3、創建數據文件存放目錄(沒有放在MySQL默認的目錄)
mkdir /datas mkdir /datas/mysql chown -R mysql.mysql /datas/mysql chmod 777 /datas/mysql4、卸載老版本(這里可能會遇到各種問題)
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 #查看版本,是不是正確的,或者登陸后用命名查看:?SELECT VERSION();
6、安裝正常后,就是初始配置了。包括:修改root密碼、修改端口、允許用戶遠程登陸
不過安裝過程,要注意,有個初始密碼【(YngqRv7m).e】(每次每個人都不同,先記著,一會兒登陸的時候用):
2017-06-29T02:20:02.092807Z 1 [Note] A temporary password is generated for root@localhost: (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 'root'@'localhost' 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
?
另外,添加用戶,或者修改其他用戶的密碼,直接參考:http://blog.csdn.net/adu198888/article/details/54092857
#給用戶test賦予所有庫和表的部分權限(所以權限是: all privileges) grant select,delete,update,create,drop on *.* to test@"%" identified by "1234";#修改用戶密碼 update mysql.user set authentication_string=password('密碼') where User='test' and Host='localhost'; flush privileges;
?
另外附:
有時候mysql報錯:Got a packet bigger than 'max_allowed_packet' bytes
然后命令查看和配置文件里查看的max_allowed_packet結果不一樣(命令查詢是1024):
show VARIABLES like '%max_allowed_packet%'; #結果為1024那就考慮是因為服務器的內存太小,被MySQL重置為1024了。
解決辦法是:1、重啟MySQL,就好了;2、根本解決辦法是服務器加內存。
?
轉載于:https://www.cnblogs.com/whatmiss/p/7093630.html
總結
以上是生活随笔為你收集整理的cenos下安装MySQL最新版(5.7.18)记录。附卸载老版本过程的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: docker - 启动container
- 下一篇: 关于反序列化漏洞