linux mysql安裝(centos7)

 在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

 

Linux環境下,腳本自動安裝完數據庫,命令行用mysql -uroot -ppasswaord 登錄卻報了這麼個錯:
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)

網上解決辦法都差不多,大概做個整理吧:
1、編輯/etc/my.cnf添加skip-grant-tables
2、重啓MySQL服務(Linux版本不同可能命令略不一樣)
systemctl restart mysqld.service
3、修改MySQL密碼(以下兩條命令執行一條即可,根據MySQL版本選擇,後一個適合版本比前一個高)
update user set password=password('我是密碼') where user='root' and host='localhost';
update user set authentication_string=password('我是密碼') where user='root' and host='localhost';
FLUSH PRIVILEGES;
4、註釋掉skip-grant-tables
5、重啓MySQL服務
6、mysql -uroot -p我是密碼
此時能登錄上去,但可能其他大部分操作都會報錯
7、ERROR 1820 (HY000): You must SET PASSWORD before executing this statement
則再設一次密碼即可
SET PASSWORD = PASSWORD('我是密碼');
8、若報錯:ERROR 1819 (HY000): Your password does not satisfy the current policy requirements則修改密碼策略,再修改密碼。
mysql> set global validate_password_policy=low;
9、登錄驗證是否能成功登錄,並嘗試其他操作驗證賬戶是否正常

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章