1. 程式人生 > 其它 >CentOS7用yum安裝MySQL8

CentOS7用yum安裝MySQL8

1. 配置YUM源

新建 vi /etc/yum.repos.d/mysql-community.repo,使用清華源,內容如下:

[mysql-connectors-community]
name=MySQL Connectors Community
baseurl=https://opentuna.cn/mysql/yum/mysql-connectors-community-el7-$basearch/
enabled=1
gpgcheck=1
gpgkey=https://repo.mysql.com/RPM-GPG-KEY-mysql

[mysql-tools-community]
name=MySQL Tools Community
baseurl=https://opentuna.cn/mysql/yum/mysql-tools-community-el7-$basearch/
enabled=1
gpgcheck=1
gpgkey=https://repo.mysql.com/RPM-GPG-KEY-mysql

[mysql-5.6-community]
name=MySQL 5.6 Community Server
baseurl=https://opentuna.cn/mysql/yum/mysql-5.6-community-el7-$basearch/
enabled=0
gpgcheck=1
gpgkey=https://repo.mysql.com/RPM-GPG-KEY-mysql

[mysql-5.7-community]
name=MySQL 5.7 Community Server
baseurl=https://opentuna.cn/mysql/yum/mysql-5.7-community-el7-$basearch/
enabled=1
gpgcheck=1
gpgkey=https://repo.mysql.com/RPM-GPG-KEY-mysql

[mysql-8.0-community]
name=MySQL 8.0 Community Server
baseurl=https://opentuna.cn/mysql/yum/mysql-8.0-community-el7-$basearch/
enabled=1
gpgcheck=1
gpgkey=https://repo.mysql.com/RPM-GPG-KEY-mysql

2. 安裝MySQL

# yum install -y mysql-community-server

3. 啟動MySQL

# service mysqld start

4. 檢視預設密碼

加粗部分即為預設密碼

# cat /var/log/mysqld.log | grep password
2021-07-25T12:29:02.180014Z 6 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: UsrXkeIG1A;0

5. 修改密碼

5.1 登入MySQL

加粗部分即為預設密碼

# mysql -p'UsrXkeIG1A;0'

5.2 修改root密碼

加粗部分即為新密碼,請牢記

mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'Root@123' PASSWORD EXPIRE NEVER;

5.3 重新整理許可權

mysql> FLUSH PRIVILEGES;

5.4 退出MySQL

mysql> exit;

5.5 確認新密碼

加粗部分即為新密碼,能登入成功則新密碼沒問題

# mysql -pRoot@123

6. 建立新使用者

安全起見,我們不允許root使用者遠端訪問,建立新使用者擁有CRUD許可權

6.1 登入MySQL

mysql -p'Root@123'

6.2 建立新使用者

加粗部分即為密碼,請牢記

CREATE USER 'app'@'%' IDENTIFIED BY 'App@123456' PASSWORD EXPIRE NEVER;

6.3 為新使用者授權

授予所有資料庫的所有表的增加、修改、刪除、查詢、建立臨時表、鎖表、檢視資料庫的許可權

GRANT INSERT,UPDATE,DELETE,SELECT,CREATE TEMPORARY TABLES,LOCK TABLES,SHOW DATABASES ON *.* TO 'app'@'%';

6.4 重新整理許可權

mysql> FLUSH PRIVILEGES;

6.5 退出MySQL

mysql> exit;

6.6 用新使用者登入MySQL

加粗部分即為密碼

# mysql -uapp -pApp@123456

6.7 確認新使用者許可權

  1. 檢視所有資料庫,有許可權

    mysql> show databases;

    Database
    information_schema
    mysql
    performance_schema
    sys
  2. 建立資料庫,沒許可權

    mysql> create database app;
    ERROR 1044 (42000): Access denied for user 'app'@'%' to database 'app'

  3. 查詢資料表,有許可權

    mysql> use mysql;
    Reading table information for completion of table and column names
    You can turn off this feature to get a quicker startup with -A

    Database changed

    mysql> select host,user from user;

    host user
    % app
    localhost mysql.infoschema
    localhost mysql.session
    localhost mysql.sys
    localhost root

其他許可權不在一一驗證

6.8 驗證新使用者遠端登入

SSH到另一臺安裝了MySQL Client的伺服器

# mysql -h這裡換成目標MySQL伺服器的IP -uapp -pApp@123456

注意:目標MySQL伺服器防火牆需要關閉或開放3306

筆者只是初學者,開此部落格的初衷是為了給自己的學習過程留一個痕跡。所以您可能發現筆者措辭不嚴謹、邏輯不合理,甚至程式碼有錯誤、結論很偏頗等等。筆者感激各位的討論和指正,並在此不勝感激!拜謝!歡迎加QQ群討論:852410026