centos7.4安裝mysql8教程
第一部分 CentOS7安裝mysql
1.1 安裝前清理工作;
1.1.1 清理原有的mysql資料庫;
使用以下命令查找出安裝的mysql軟體包和依賴包:
rpm -qa | grep mysql
顯示結果如下:
-
mysql80-community-release-el7-1.noarch
-
mysql-community-server-8.0.11-1.el7.x86_64
-
mysql-community-common-8.0.11-1.el7.x86_64
-
mysql-community-libs-8.0.11-1.el7.x86_64
-
mysql-community-client-8.0.11-1.el7.x86_64
使用以下命令依次刪除上面的程式
yum remove mysql-xxx-xxx-
刪除mysql的配置檔案,解除安裝不會自動刪除配置檔案,首先使用如下命令查找出所用的配置檔案;
find / -name mysql
可能的顯示結果如下:
-
/etc/logrotate.d/mysql
-
/etc/selinux/targeted/active/modules/100/mysql
-
/etc/selinux/targeted/tmp/modules/100/mysql
-
/var/lib/mysql
-
/var/lib/mysql/mysql
-
/usr/bin/mysql
-
/usr/lib64/mysql
-
/usr/local/mysql
根據需求使用以下命令 依次 對配置檔案進行刪除
rm -rf /var/lib/mysql
1.1.2 刪除MariaDB的檔案,
由於MySQL在CentOS7中收費了,所以已經不支援MySQL了,取而代之在CentOS7內部集成了mariadb,而安裝MySQL的話會和MariaDB的檔案衝突,所以需要先解除安裝掉MariaDB.
使用rpm 命令查找出要刪除的mariadb檔案;
rpm -qa | grep mariadb
可能的顯示結果如下:
mariadb-libs-5.5.56-2.el7.x86_64
刪除上面的程式
rpm -e mariadb-libs-5.5.56-2.el7.x86_64
可能出現錯誤提示如下:
-
依賴檢測失敗:
-
libmysqlclient.so.18()(64bit) 被 (已安裝) postfix-2:2.10.1-6.el7.x86_64 需要
-
libmysqlclient.so.18(libmysqlclient_18)(64bit) 被 (已安裝) postfix-2:2.10.1-6.el7.x86_64 需要
-
libmysqlclient.so.18(libmysqlclient_18)(64bit) 被 (已安裝) postfix-2:2.10.1-6.el7.x86_64 需要
使用強制刪除:
rpm -e --nodeps mariadb-libs-5.5.56-2.el7.x86_64
至此就將原來有的mysql 和mariadb資料庫刪除了;
1.2 安裝mysql
1.2.1 下面mysql官網提供的mysql repo源
centos的yum 源中預設是沒有mysql的,所以我們需要先去官網下載mysql的repo源並安裝;
1.2.2 將檔案上傳到CentOS
將下載好的檔案上傳到Centos /usr/local/mysql資料夾下;
或者
wget https://dev.mysql.com/get/mysql80-community-release-el7-1.noarch.rpm
1.2.3 安裝 yum repo檔案並更新 yum 快取;
rpm -ivh mysql80-community-release-el7-1.noarch.rpm
執行結果:
會在/etc/yum.repos.d/目錄下生成兩個repo檔案mysql-community.repo mysql-community-source.repo
更新 yum 命令
-
yum clean all yum makecache
1.2.4 使用 yum安裝mysql
當我們在使用yum安裝mysql時,yum預設會從yum倉庫中安裝mysql最新的GA版本;如何選擇自己的版本;
第一步: 檢視mysql yum倉庫中mysql版本,使用如下命令
yum repolist all | grep mysql
可以看到 MySQL 5.5 5.6 5.7為禁用狀態 而MySQL 8.0為啟用狀態;(因為要安裝mysql8,所以mysql8設定啟用就好,不用管下面設定就行)
第二步 使用 yum-config-manager 命令修改相應的版本為啟用狀態最新版本為禁用狀態(可不操作)
-
yum-config-manager --enable mysql80-community
-
yum-config-manager --disable mysql57-community
或者可以編輯 mysql repo檔案,(可不操作)
cat /etc/yum.repos.d/mysql-community.repo
將相應版本下的enabled改成 1 即可;
1.2.5 安裝mysql 命令如下:
yum install mysql-community-server
1.2.6 開啟mysql 服務
systemctl start mysqld.service
安裝好之後
檢視初始密碼
cat /var/log/mysqld.log | grep password
使用初始密碼登入mysql
mysql -u root -p
修改初始密碼(注:所有執行的SQL語句記得加上“;”分號)
ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass4!';
另外一種密碼加密模式(為了適應sqlyog 或者 navicat 登入 , 因為這些軟體目前還沒mysql最新版的密碼加密方式,登入用的還是老模式)
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'MyNewPass4!';
設定Mysql可以遠端訪問
use mysql;
select host,user,authentication_string,plugin from user;
update user set host='%' where user='root';
然後重起:
systemctl restart mysqld.serivice
常用命令:
登入mysql
mysql -u username -p
退出mysql
quit
啟動mysql
systemctl start mysqld.service
結束
systemctl stop mysqld.service
重啟
systemctl restart mysqld.service
開機自啟
systemctl enable mysqld.service
檢視mysql版本
select version();
------------------------------------------------------------------------------------------------------------------
第一部分如果有問題參考一下第二部分看能不能解決
第二部分 Navicat 連線 Mysql8
2.1 開啟mysql遠端服務:
2.1.1 修改mysql資料庫下的user表中host的值
可能是你的帳號不允許從遠端登陸,只能在localhost。這個時候只要在localhost的那臺電腦,登入mysql後,更改 "mysql" 資料庫裡的 "user" 表裡的 "host" 項,從"localhost"改稱"%"登入mysql資料庫 執行如下命令:
-
mysql -u root -p
-
use mysql;
-
update user set host='%' where user='root';
2.1.2 使用授權的方式
賦予任何主機訪問資料的許可權
mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%'WITH GRANT OPTION;
mysql>FLUSH PRIVILEGES
如果想myuser使用者使用mypassword密碼從任何主機連線到mysql伺服器的話。
GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'%'IDENTIFIED BY 'mypassword' WITH GRANT OPTION;
如果你想允許使用者myuser從ip為192.168.1.6的主機連線到mysql伺服器,並使用mypassword作為密碼
GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'192.168.1.3'IDENTIFIED BY 'mypassword' WITH GRANT OPTION;
2.2 在使用 Navicat for Mysql連線mysql 8.0時會報如下錯誤:
Authentication plugin 'caching_sha2_password' cannot be loaded:
mysql8.0 引入了新特性 caching_sha2_password;這種密碼加密方式客戶端不支援;客戶端支援的是mysql_native_password 這種加密方式;
我們可可以檢視mysql 資料庫中user表的 plugin欄位;
可以使用命令將他修改成mysql_native_password加密模式:
update user set plugin='mysql_native_password' where user='root';
再用Navicat連結 就可以連結成功;
------------------------------------------------------------------------------------------------------------------