CentOS 7 安裝Mysql8.x

參考內(nèi)容1
參考內(nèi)容2
參考內(nèi)容3
參考內(nèi)容4:Mysql8.x修改用戶密碼
參考內(nèi)容5:Mysql8.x修改用戶密碼
參考內(nèi)容6:報錯信息
centOS mysql 8小時后自動斷開連接

1.準備工作

1.1 安裝前清理工作

1.1.1 清理原有的Mysql數(shù)據(jù)庫

1.1.1.1使用以下命令查找出安裝的Mysql軟件包和依賴包

> rpm -pa | 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

1.1.1.2使用命令依次刪除以上程序

> yum remove mysql-xxx-xxx-

1.1.1.3刪除mysql的配置文件,卸載不會自動刪除配置文件

  1. 首先使用如下命令查找出所用的配置文件
> 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
  1. 根據(jù)需求使用以下命令 依次 對配置文件進行刪除
> rm -rf /var/lib/mysql

1.1.2 刪除MariaDB文件

由于MySQL在CentOS7中收費了,所以已經(jīng)不支持MySQL了,取而代之在CentOS7內(nèi)部集成了mariadb,而安裝MySQL的話會和MariaDB的文件沖突,所以需要先卸載掉MariaDB.

1.1.2.1使用rpm 命令查找出要刪除的mariadb文件

> rpm -pa | grep mariadb

可能的顯示結果如下:

mariadb-libs-5.5.56-2.el7.x86_64
#刪除上面的程序
> rpm -e mariadb-libs-5.5.56-2.el7.x86_64

可能出現(xiàn)錯誤提示如下:
依賴檢測失敗:

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 需要

1.1.2.2使用強制刪除

> rpm -e --nodeps mariadb-libs-5.5.56-2.el7.x86_64

至此就將原來有的Mysql 和mariadb數(shù)據(jù)庫刪除了。

2 安裝Mysql

2.1 Mysql官網(wǎng)提供mysql repo源

centos的yum 源中默認是沒有mysql的,所以我們需要先去官網(wǎng)下載mysql的repo源并安裝
mysql官網(wǎng)下載鏈接:mysql repo下載地址 如下:https://dev.mysql.com/downloads/

Yum庫地址

復制相對應版本下載地址

2.2 下載軟件包RPM文件

文件下載到Centos/usr/local/mysql文件夾下

#打開安裝上當
> cd /usr/local
#創(chuàng)建安裝目錄并進入
> mkdir mysql
> cd mysql
#下載文件到本地
> wget -i -c https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm

2.3 安裝 yum repo文件并更新 yum 緩存

> rpm -ivh mysql80-community-release-el7-3.noarch.rpm  --nodeps --force

執(zhí)行結果:

會在/etc/yum.repos.d/目錄下生成兩個repo文件mysql-community.repo mysql-community-source.repo

2.4 更新 yum 命令

> yum clean all
> yum makecache

2.4.1 使用yum安裝mysql

當我們在使用yum安裝mysql時,yum默認會從yum倉庫中安裝mysql最新的GA版本。

  1. 第一步: 查看mysql yum倉庫中mysql版本,使用如下命令
#可以看到 MySQL 5.5 5.6 5.7為禁用狀態(tài) 而MySQL 8.0為啟用狀態(tài)
> yum repolist all | grep mysql
  1. 第二步:使用 yum-config-manager 命令修改相應的版本為啟用狀態(tài)最新版本為禁用狀態(tài),根據(jù)需要安裝的版本修改
#關閉8.0版本
> yum-config-manager --disable mysql80-community
#開啟5.7版本
> yum-config-manager --enable mysql57-community

或者可以編輯 mysql repo文件,將相應版本下的enabled改成 1 即可。

> cat /etc/yum.repos.d/mysql-community.repo 

2.5 安裝Mysql

> yum install mysql-community-server

2.6 開啟Mysql 服務

> systemctl start mysqld.service

2.7 獲取初始密碼登錄Mysql

2.7.1 默認用戶

mysql在安裝后會創(chuàng)建一個root@localhost賬戶,并且把初始的密碼放到了/var/log/mysqld.log文件中

> cat /var/log/mysqld.log | grep password

2.7.2 初始化登錄

使用初始密碼登錄mysql

#會提示輸入密碼
> mysql -u root -p

2.7.3 修改密碼

修改初始化密碼

#使用update語句先清空authentication_string字段,然后再修改密碼
mysql> update user set authentication_string='' where user='root';
mysql> flush privileges;
#注意位數(shù)和種類至少大+寫+小寫+符號+數(shù)字
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass4!';

2.7.4 重置密碼

忘記密碼重置密碼

[重置密碼解決MySQL for Linux錯誤 ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)]

#注:windows下修改的是my.ini
> vim /etc/my.cnf
# 在[mysqld]后面任意一行添加skip-grant-tables用來跳過密碼驗證的過程;設置完密碼記得刪除
skip-grant-tables
#重啟mysql ,就可以免密碼登陸了,然后進行修改密碼
systemctl restart mysqld.service 

2.8 在防火墻中開啟3306端口

CentOS 7默認使用的是firewall作為防火墻,我這里改為習慣常用的iptables防火墻

  1. 第一步:開啟firewall3306端口防火墻
#查看所有打開的端口
> firewall-cmd --zone=public --list-ports
#開啟一個端口,添加--permanent永久生效,沒有此參數(shù)重啟后失效
> firewall-cmd --zone=public --add-port=80/tcp --permanent
#開放端口80
> firewall-cmd --permanent --add-port=80/tcp
#移除端口80
> firewall-cmd --permanent --remove-port=80/tcp
#重啟防火墻,修改后重啟防火墻生效
> firewall-cmd --reload
  1. 第二步: 重啟防火墻
> systemctl enable iptables.service
> systemctl start iptables.service

2.9 將Mysql 服務加入開機啟動項,并啟動Mysql進程

> systemctl enable mysqld.service
> systemctl start mysqld.service

2.10 常用Mysql服務命令:

#登錄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(); 

2.11 開啟Mysql遠程服務

  • 外網(wǎng) Navicat 連接 Mysql

2.11.1 修改Mysql數(shù)據(jù)庫下的user表中host的值

可能是你的帳號不允許從遠程登陸,只能在localhost。這個時候只要在localhost的那臺電腦,登入mysql后,更改 "mysql" 數(shù)據(jù)庫里的 "user" 表里的 "host" 項,從"localhost"改稱"%"登錄mysql數(shù)據(jù)庫。

執(zhí)行如下命令:

> mysql -u root -p
mysql> use mysql;
mysql> update user set host='%' where user='root';

2.11.2 使用授權方式

  1. 賦予任何主機訪問數(shù)據(jù)的權限
mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%'WITH GRANT OPTION;
mysql> FLUSH PRIVILEGES;
  1. 如果想myuser用戶使用mypassword密碼從任何主機連接到mysql服務器
mysql> GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'%'IDENTIFIED BY 'mypassword' WITH GRANT OPTION;
  1. 如果你想允許用戶myuser從ip為192.168.1.6的主機連接到mysql服務器,并使用mypassword作為密碼
mysql> GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'192.168.1.3'IDENTIFIED BY 'mypassword' WITH GRANT OPTION;

2.11.3 使用 Navicat for Mysql連接mysql 8.0

在使用 Navicat for Mysql連接mysql 8.0時會報如下錯誤:

Authentication plugin 'caching_sha2_password' cannot be loaded:

  • mysql8.0 引入了新特性 caching_sha2_password;
  • 這種密碼加密方式客戶端不支持;
  • 客戶端支持的是mysql_native_password 這種加密方式;
  • 我們可以查看mysql 數(shù)據(jù)庫中user表的 plugin字段。

使用命令將他修改成mysql_native_password加密模式:

mysql> update user set plugin='mysql_native_password' where user='root';

再用Navicat鏈接 就可以鏈接成功。

最后編輯于
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內(nèi)容