1-首先查看系統是否存在mysql,無則不返回
# rpm -qa|grep mysql
2-安裝wget
# yum -y install wget
3-抓取mariadb並刪除包,無則不返回
# rpm -qa|grep mariadb
4-刪除mariadb-libs-5.5.68-1.el7.x86_64
# rpm -e --nodeps mariadb-libs-5.5.68-1.el7.x86_64
5-配置阿里雲的yum
# wget http://mirrors.aliyun.com/repo/Centos-7.repo
6-配置成功后需要重新加載yum
# yum clean all --清除yum
# yum makecache --清除緩存
# yum repolist --查看倉儲包
7-進入tmp文件夾,並清空
# cd /tmp/
# rm -rf *
8-通過wget下載mysql8.0包(如果包不是最新的則需要注意在安裝MYSQL前進行Mysql的GPG升級)
獲取最新的包打開MYSQL官網wget https://dev.mysql.com/get/Downloads/
然后拼接在[wget https://dev.mysql.com/get/Downloads/]后面
wget https://dev.mysql.com/get/Downloads/mysql-community-server-8.0.27-1.el7.x86_64.rpm
本教程提供的yum源包
# wget https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm
9-配置mysql的yum源
# sudo rpm -Uvh mysql80-community-release-el7-3.noarch.rpm
執行成功后會在/etc/yum.repos.d/目錄下生成兩個repo文件mysql-community.repo 及 mysql-community-source.repo
10-進入yum.repos.d查看
# cd /etc/yum.repos.d/
# ls -l
11-開始安裝Mysql
# yum install -y mysql-community-server
注意:上面提到過,通過wget獲取的MYSQL包不是最新的前提下有可能報錯,這是因為MYSQL的GPG升級了,需要重新獲取
如果無這個報錯可忽略跳過本步驟
報錯信息如下:
Failing package is: mysql-community-client-8.0.28-1.el7.x86_64
GPG Keys are configured as: file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql
12-這個時候需要重執行(2022則為今年的年份),執行完GPG升級,需要重新安裝
# rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2022
# yum install -y mysql-community-server
13-安裝完成
打開my.cnf文件增加以下 [skip-name-resolve] 語句到末尾(這一步可不做設置)
# vi /etc/my.cnf
#跳過名稱解析,提高數據庫的連接速度
# skip-name-resolve
14-啟動MYSQL服務,並查看狀態,查看端口
# systemctl start mysqld --啟動mysql服務
# systemctl status mysqld --查看mysql服務狀態
# netstat -nlpt | grep mysqld --查看端口
15-設置開機啟動
# systemctl enable mysqld
# systemctl daemon-reload
16-抓取mysql臨時密碼
# cat /var/log/mysqld.log | grep password
17-登錄進mysql
mysql -u<賬號> -p<密碼> -P<端口號,默認3306> -h<mysqld服務器IP,如果比指定"-h" 則表示本地登陸>
mysql -uroot -p
18-更改密碼(必須是強密碼),並刷新(mysql結尾一定要加英文分號;)
mysql> alter user 'root'@'localhost' identified by 'Root123..'; --修改密碼(強密碼)
mysql> flush privileges; --刷新,立即生效
mysql> select user,host from mysql.user; --查看數據庫中賬號信息
弱密碼會報錯,如圖
做這一步前提:必須是修改了默認的隨機密碼(執行步驟18)
關掉強密碼,修改密碼長度最短為6位數,修改密碼為弱密碼
mysql> set global validate_password.policy=0; --關掉強密碼認證
mysql> set global validate_password.length=6; --密碼長度最短為6位數
mysql> alter user 'root'@'localhost' identified by '123456'; --修改密碼(弱密碼)
19-開放3306端口,並且重啟防火牆,然后查看端口,開放端口是為了外網能通過Navicat Premium等其他工具訪問
# firewall-cmd --zone=public --add-port=3306/tcp --permanent --開放3306端口
# firewall-cmd --reload --重啟防火牆
# firewall-cmd --list-ports --查看開放的端口
做完如上部署,重新登錄進到數據庫,修改user表中的Host:
# mysql -uroot -p123456 --登錄數據庫
mysql> show databases; --查數據來庫
mysql> use mysql; --使用數據庫
mysql> select Host, User from user; --查詢表
mysql> update user set Host='%' where User='root'; --修改User表內root用戶的Host為%
mysql> flush privileges; --刷新
MYSQL知識點
如果創建一個用戶,給予單個庫權限
mysql> create database test_data; --創建一個數據庫
mysql> create user admin@'%' identified by 'Admin@123..'; --創建一個新的用戶 admin 密碼 Admin@123..
mysql> grant all privileges on test_data.* to admin@'%' with grant option; --授權,給test_data庫的所有權限
mysql> flush privileges; --刷新
MySQL5.6版本和8.0版本的的用戶授權方式不同
MySQL5.6版本的用戶授權
mysql> create user test identified by '123456';
mysql> grant all privileges on *.* to 'admin'@'%'identified by '123456' with grant option;
mysql> flush privileges ;
MySQL8.0版本的用戶授權
mysql> create user test@'%' identified by '123456';
mysql> grant all privileges on *.* to admin@'%' with grant option;
mysql> flush privileges;