如果你還在尋尋覓覓CentOS上安裝MySQL的教學而不得,那看到這裡就不用轉走了。
說實在的,我今天搞了一天了。
MySQL8.0.21 各版本下載地址:點這裡
這個下拉框一拉,Fedora、Unbuntu什麼的都有,反正就是找不到centOS是吧,然後網上就是一堆人說centOS預設支援mariaDB,反正我的Centos是沒有。
搞這個:
可以直接在Linux系統下下載。
先看看你的系統有沒有MariaDB:
rpm -qa | grep mariadb
有的話會給你一個版本的迴應,沒有的話就沒有了、
要是運氣好,真的有,那就卸掉唄:rpm -e 版本號 --nodeps
建一個目錄,叫mysql,放哪裡你記得住就好。
然後把MySQL下載好的安裝包拖到你的mysql目錄下,可以用程式碼拖進去,也可以去檔案管理器裡面拖。
解壓:tar -xvf mysql-8.0.21-1.el7.x86_64.rpm-bundle.tar
別人的圖,意思是相通的
通過 rpm -ivh mysql-community-common-8.0.21-1.el7.x86_64.rpm --nodeps --force 命令安裝 common
通過 rpm -ivh mysql-community-libs-8.0.11-1.el7.x86_64.rpm --nodeps --force 命令安裝 libs
通過 rpm -ivh mysql-community-client-8.0.11-1.el7.x86_64.rpm --nodeps --force 命令安裝 client
通過 rpm -ivh mysql-community-server-8.0.11-1.el7.x86_64.rpm --nodeps --force 命令安裝 server
通過 rpm -qa | grep mysql 命令檢視 mysql 的安裝包
通過以下命令,完成對 mysql 資料庫的初始化和相關設定
mysqld --initialize;
chown mysql:mysql /var/lib/mysql -R;
systemctl start mysqld.service;
systemctl enable mysqld;
通過 cat /var/log/mysqld.log | grep password 命令檢視資料庫的密碼
通過 mysql -uroot -p 敲確認鍵進入資料庫登陸介面
輸入剛剛查到的密碼,進行資料庫的登陸,複製貼上就行,MySQL 的登陸密碼也是不顯示的
通過 ALTER USER ‘root’@‘localhost’ IDENTIFIED WITH mysql_native_password BY ‘root’; 命令來修改密碼
這下密碼改成了 root
通過 exit; 命令退出 MySQL,然後通過新密碼再次登陸
通過以下命令,進行遠端存取的授權
新增遠端登入使用者
預設只允許root帳戶在本地登入,如果要在其它機器上連線mysql,必須修改root允許遠端連線,或者新增一個允許遠端連線的帳戶。
修改root使用者遠端存取許可權:
選擇 mysql 資料庫:use mysql;
在 mysql 資料庫的 user 表中檢視當前 root 使用者的相關資訊:
select host, user from user;
檢視表格中 root 使用者的 host,預設應該顯示的 localhost,只支援本地存取,不允許遠端存取。
授權 root 使用者的所有許可權並設定遠端存取
GRANT ALL ON *.* TO 'root'@'%';
如果報錯:ERROR 1410 (42000): You are not allowed to create a user with GRANT
update user set host='%' where user ='root';
然後使用下面命令使修改生效:
flush privileges;
如有需要再執行之前授權報錯的命令即可成功,最後同樣使用flush privileges;命令重新整理。
sqlyog連結時出現2058異常
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';
其中password為自己修改的密碼。然後SQLyog中重新連線,則可連線成功,OK。
如果報錯:ERROR 1396 (HY000): Operation ALTER USER failed for ‘root’@'localhost’則使用下面命令:
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'password';