環境:mysql
1、Yum安裝MySQLsql
1.下載yum庫shell
shell > wget http://dev.mysql.com/get/mysql57-community-release-el7-7.noarch.rpm
2.安裝yum庫數據庫
shell > yum localinstall -y mysql57-community-release-el7-7.noarch.rpm
3.安裝數據庫安全
shell > yum install -y mysql-community-server
4.啓動MySQL服務bash
shell > systemctl start mysqld.service #啓動 shell > systemctl stop mysqld.service #中止 shell > systemctl restart mysqld.service #重啓
5.注意:MySQL5.7安裝後會有一個默認生成的root密碼,咱們要獲取到這個密碼,經過下面這個命令就能夠獲取到隨機生成的root密碼服務器
shell > sudo grep 'temporary password' /var/log/mysqld.log
6.使用隨機生成的密碼進入mysqlide
shell > mysql -uroot -p shell > Enter password:
7.使用隨機生成的密碼進入到mysql,必須立刻修改密碼,否則會出現以下錯誤ui
mysql> select user(); ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.
8. 若是隻是修改成一個簡單的密碼,會報如下錯誤:this
mysql> ALTER USER USER() IDENTIFIED BY 'root'; ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
這是由於MySQL5.7默認安裝了validate_password插件,用來校驗設置密碼是否符合必定要求,以保證密碼的安全性。請查看第二部分以後,再修改密碼;
2、MySQL5.7的validate_password插件
1. validate_password_policy 密碼校驗策略,這個密碼校驗策略就會校驗你設置的密碼是否符合當前MySQL校驗策略的要求。
有以下策略:
Policy | Tests Performed |
0 or LOW | Length |
1 or MEDIUM | Length; numeric, lowercase/uppercase, and special characters |
2 or STRONG | Length; numeric, lowercase/uppercase, and special characters; dictionary file |
策略:默認是1,即MEDIUM,因此剛開始設置的密碼必須符合長度,且必須含有數字,小寫或大寫字母,特殊字符。
實例:可是有時候,不想密碼設置得那麼複雜,好比我只想設置root的密碼爲root。
(1)首先,咱們要將validate_password_policy 策略修改成0,即只校驗密碼長度:
mysql> set global validate_password_policy=0; Query OK, 0 rows affected (0.00 sec)
(2)此時,就由validate_password_length參數來判斷了,即判斷密碼的長度便可,咱們先看看此時咱們validate_password_length的要求是什麼:
select @@validate_password_length; +----------------------------+ | @@validate_password_length | +----------------------------+ | 8 | +----------------------------+ 1 row in set (0.00 sec)
注意: validate_password_length參數默認爲8,它有最小值的限制,最小值爲:
validate_password_number_count + validate_password_special_char_count + (2 * validate_password_mixed_case_count)
上面參數解析:
mysql> select @@validate_password_length; +----------------------------+ | @@validate_password_length | +----------------------------+ | 8 | +----------------------------+ 1 row in set (0.00 sec) mysql> set global validate_password_length=1; Query OK, 0 rows affected (0.00 sec) mysql> select @@validate_password_length; +----------------------------+ | @@validate_password_length | +----------------------------+ | 4 | +----------------------------+ 1 row in set (0.00 sec)
注意:若是修改了
validate_password_number_count,validate_password_special_char_count,validate_password_mixed_case_count中任何一個值,則validate_password_length將進行動態修改。以下,我將
validate_password_mixed_case_count的值修改爲2,則validate_password_length就會動態修改爲6。
mysql> select @@validate_password_length; +----------------------------+ | @@validate_password_length | +----------------------------+ | 4 | +----------------------------+ 1 row in set (0.00 sec) mysql> select @@validate_password_mixed_case_count; +--------------------------------------+ | @@validate_password_mixed_case_count | +--------------------------------------+ | 1 | +--------------------------------------+ 1 row in set (0.00 sec) mysql> set global validate_password_mixed_case_count=2; Query OK, 0 rows affected (0.00 sec) mysql> select @@validate_password_mixed_case_count; +--------------------------------------+ | @@validate_password_mixed_case_count | +--------------------------------------+ | 2 | +--------------------------------------+ 1 row in set (0.00 sec) mysql> select @@validate_password_length; +----------------------------+ | @@validate_password_length | +----------------------------+ | 6 | +----------------------------+ 1 row in set (0.00 sec)
3、常見錯誤解決辦法
1.ERROR 1290 (HY000): The MySQL server is running with the –skip-grant-tables option so it cannot execute this statement.
解決辦法:
shell> mysql mysql> set global read_only=0; mysql> flush privileges; mysql> quit shell> /usr/bin/mysql_secure_installation
2.[ERROR] InnoDB: Cannot create log files because data files are corrupt or the database was not shut down cleanly after creating the data files.
解決辦法:
shell> cd /var/lib/mysql shell> mv ibdata1 ibdata1.bak
3.[ERROR] InnoDB: space header page consists of zero bytes in data file ./ibdata1
解決辦法:
innodb_flush_log_at_trx_commit = 2 在此後添加下面內容 innodb_flush_method=normal
4.ERROR 1045 (28000): Access denied for user ‘root’@’localhost’ (using password: NO)
解決辦法:沒有輸入密碼,注意MySQL5.7默認初始密碼不爲空,會產生一個隨機密碼!
臨時密碼獲取:sudo grep 'temporary password' /var/log/mysqld.log
5.ERROR 1045 (28000): Access denied for user ‘root’@’localhost’ (using password: YES)
解決辦法:密碼錯誤,請檢查後從新輸入!
4、遠程訪問MySQL須要的配置
1.首先,在雲服務安全組配置安全規則,開放MySQL的3306端口
2.查看3306端口是否開放,並綁定內網IP
#netstat -anpt | grep 3306 修改 /etc/my.cnf # vi /etc/my.cnf ---->bind-address = 內網IP(10.141.26.176)
3.給root用戶全部的mysql操做權限
mysql > grant all privileges on *.* to root @"%" identified by "root" with grant option; mysql > flush privileges;
4.關閉服務器防火牆
開啓 start 關閉 stop 當前狀態 status 重啓 restart 開機啓動禁止 disable 開機自啓動 enable shell > systemctl start firewalld.service 其餘服務:httpd.service
以上,你就能夠在本機的mysql圖像化界面去鏈接你的雲服務中安裝的MySQL了!
本文爲原創文章,若是對你有一點點的幫助,別忘了點贊哦!比心!如需轉載,請註明出處,謝謝!