參考內(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
顯示結(jié)果如下:
> 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的配置文件腾啥,卸載不會自動刪除配置文件
- 首先使用如下命令查找出所用的配置文件
> find / -name mysql
可能的顯示結(jié)果如下:
/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
- 根據(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
可能的顯示結(jié)果如下:
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/
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í)行結(jié)果:
會在/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版本樟遣。
- 第一步: 查看mysql yum倉庫中mysql版本而叼,使用如下命令
#可以看到 MySQL 5.5 5.6 5.7為禁用狀態(tài) 而MySQL 8.0為啟用狀態(tài)
> yum repolist all | grep mysql
- 第二步:使用 yum-config-manager 命令修改相應(yīng)的版本為啟用狀態(tài)最新版本為禁用狀態(tài),根據(jù)需要安裝的版本修改
#關(guān)閉8.0版本
> yum-config-manager --disable mysql80-community
#開啟5.7版本
> yum-config-manager --enable mysql57-community
或者可以編輯 mysql repo文件豹悬,將相應(yīng)版本下的enabled改成 1 即可葵陵。
> cat /etc/yum.repos.d/mysql-community.repo
2.5 安裝Mysql
> yum install mysql-community-server
2.6 開啟Mysql 服務(wù)
> 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用來跳過密碼驗證的過程;設(shè)置完密碼記得刪除
skip-grant-tables
#重啟mysql 脱篙,就可以免密碼登陸了,然后進行修改密碼
systemctl restart mysqld.service
2.8 在防火墻中開啟3306端口
CentOS 7默認使用的是firewall作為防火墻,我這里改為習慣常用的iptables防火墻
- 第一步:開啟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
- 第二步: 重啟防火墻
> systemctl enable iptables.service
> systemctl start iptables.service
2.9 將Mysql 服務(wù)加入開機啟動項秤朗,并啟動Mysql進程
> systemctl enable mysqld.service
> systemctl start mysqld.service
2.10 常用Mysql服務(wù)命令:
#登錄mysql
mysql -u username -p
#退出mysql
quit
#啟動mysql
systemctl start mysqld.service
#結(jié)束
systemctl stop mysqld.service
#重啟
systemctl restart mysqld.service
#開機自啟
systemctl enable mysqld.service
#查看mysql版本
select version();
2.11 開啟Mysql遠程服務(wù)
- 外網(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 使用授權(quán)方式
- 賦予任何主機訪問數(shù)據(jù)的權(quán)限
mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%'WITH GRANT OPTION;
mysql> FLUSH PRIVILEGES;
- 如果想myuser用戶使用mypassword密碼從任何主機連接到mysql服務(wù)器
mysql> GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'%'IDENTIFIED BY 'mypassword' WITH GRANT OPTION;
- 如果你想允許用戶myuser從ip為192.168.1.6的主機連接到mysql服務(wù)器,并使用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鏈接 就可以鏈接成功怨酝。