1. 程式人生 > >CentOS7安裝MySQL並設置遠程登錄

CentOS7安裝MySQL並設置遠程登錄

安裝完成 開始 就是 分支 centos7 too entos -c views

在CentOS中默認安裝有MariaDB,這個是MySQL的分支,但為了需要,還是要在系統中安裝MySQL,而且安裝完成之後可以直接覆蓋掉MariaDB。

1 下載並安裝MySQL官方的 Yum Repository

[root@localhost ~]# wget -i -c http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm

使用上面的命令就直接下載了安裝用的Yum Repository,大概25KB的樣子,然後就可以直接yum安裝了。

[root@localhost ~]# yum -y install mysql57-community-release-el7-10.noarch.rpm

之後就開始安裝MySQL服務器。

[root@localhost ~]# yum -y install mysql-community-server

這步可能會花些時間,安裝完成後就會覆蓋掉之前的mariadb。

技術分享圖片

至此MySQL就安裝完成了,然後是對MySQL的一些設置。

2 MySQL數據庫設置

首先啟動MySQL

[root@localhost ~]# systemctl start  mysqld.service

查看MySQL運行狀態,運行狀態如圖:

[root@localhost ~]# systemctl status mysqld.service

技術分享圖片

此時MySQL已經開始正常運行,不過要想進入MySQL還得先找出此時root用戶的密碼,通過如下命令可以在日誌文件中找出密碼:

[root@localhost ~]# grep "password" /var/log/mysqld.log

技術分享圖片

如下命令進入數據庫:

[root@localhost ~]# mysql -uroot -p

輸入初始密碼,此時不能做任何事情,因為MySQL默認必須修改密碼之後才能操作數據庫:

mysql> ALTER USER ‘root‘@‘localhost‘ IDENTIFIED BY ‘new password‘;

這裏有個問題,新密碼設置的時候如果設置的過於簡單會報錯:

技術分享圖片

原因是因為MySQL有密碼設置的規範,具體是與validate_password_policy的值有關:

技術分享圖片

MySQL完整的初始密碼規則可以通過如下命令查看:

技術分享圖片
mysql> SHOW VARIABLES LIKE ‘validate_password%‘;
+--------------------------------------+-------+
| Variable_name                        | Value |
+--------------------------------------+-------+
| validate_password_check_user_name    | OFF   |
| validate_password_dictionary_file    |       |
| validate_password_length             | 4     |
| validate_password_mixed_case_count   | 1     |
| validate_password_number_count       | 1     |
| validate_password_policy             | LOW   |
| validate_password_special_char_count | 1     |
+--------------------------------------+-------+
7 rows in set (0.01 sec)
技術分享圖片

密碼的長度是由validate_password_length決定的,而validate_password_length的計算公式是:

validate_password_length = validate_password_number_count + validate_password_special_char_count + (2 * validate_password_mixed_case_count)

我的是已經修改過的,初始情況下第一個的值是ON,validate_password_length是8。可以通過如下命令修改:

mysql> set global validate_password_policy=0;
mysql> set global validate_password_length=1;

設置之後就是我上面查出來的那幾個值了,此時密碼就可以設置的很簡單,例如1234之類的。到此數據庫的密碼設置就完成了。

但此時還有一個問題,就是因為安裝了Yum Repository,以後每次yum操作都會自動更新,需要把這個卸載掉:

[root@localhost ~]# yum -y remove mysql57-community-release-el7-10.noarch

遠程登錄:

一、允許root用戶在任何地方進行遠程登錄,並具有所有庫任何操作權限,具體操作如下:
在本機先使用root用戶登錄mysql:
mysql -u root -p”youpassword”
進行授權操作:
mysql>GRANT ALL PRIVILEGES ON *.* TO ‘root’@’%’ IDENTIFIED BY ‘youpassword’ WITH GRANT OPTION;
重載授權表:
FLUSH PRIVILEGES;

設置UTF8字符集

最簡單的完美修改方法,修改mysql的 /etc/my.cnf 文件中的字符集鍵值(註意配置的字段細節): [plain] view plain copy
  1. 1、在[mysqld]字段裏加入character-set-server=utf8,如下:
  2. [mysqld]
  3. port = 3306
  4. socket = /var/lib/mysql/mysql.sock
  5. character-set-server=utf8
修改完成後,sudo systemctl restart mysqld重啟mysql服務就生效。 使用SHOW VARIABLES LIKE ‘character%’;查看,發現數據庫編碼全已改成utf8。

[sql] view plain copy
  1. +--------------------------+----------------------------+
  2. | Variable_name | Value |
  3. +--------------------------+----------------------------+
  4. | character_set_client | utf8 |
  5. | character_set_connection | utf8 |
  6. | character_set_database | utf8 |
  7. | character_set_filesystem | binary |
  8. | character_set_results | utf8 |
  9. | character_set_server | utf8 |
  10. | character_set_system | utf8 |
  11. | character_sets_dir | /usr/share/mysql/charsets/ |
  12. +--------------------------+----------------------------+

此時才算真的完成了。

CentOS7安裝MySQL並設置遠程登錄