mysql的安裝和密碼管理、mysql初始密碼查找、密碼修改、mysql登陸

官網下載安裝mysql-server

CentOS 7 版本已將MySQL數據庫軟件從默認的程序列表中移除,改用mariadb代替。先要從官網下載MySQL Yum repository安裝包,以後用yum安裝:
官網的MySQL Yum repository最新地址:https://dev.mysql.com/downloads/repo/yum/
用wget下載MySQL Yum repository安裝包,安裝完成後,用yum安裝MySQL以下:html

wget https://dev.mysql.com/get/mysql80-community-release-el7-1.noarch.rpm
rpm -ivh mysql80-community-release-el7-1.noarch.rpm
yum install mysql-community-server

在最小化安裝的狀況下,若是須要yum離線安裝,所需依賴以下:
mysql

=================================================================================================================================================================================================================================================
 Package                                                              Arch                                            Version                                                   Repository                                                  Size
=================================================================================================================================================================================================================================================
Installing:
 mysql-community-libs                                                 x86_64                                          8.0.13-1.el7                                              mysql80-community                                          2.3 M
     replacing  mariadb-libs.x86_64 1:5.5.56-2.el7
 mysql-community-libs-compat                                          x86_64                                          8.0.13-1.el7                                              mysql80-community                                          2.1 M
     replacing  mariadb-libs.x86_64 1:5.5.56-2.el7
 mysql-community-server                                               x86_64                                          8.0.13-1.el7                                              mysql80-community                                          381 M
Installing for dependencies:
 mysql-community-client                                               x86_64                                          8.0.13-1.el7                                              mysql80-community                                           26 M
 mysql-community-common                                               x86_64                                          8.0.13-1.el7                                              mysql80-community                                          554 k
 perl                                                                 x86_64                                          4:5.16.3-293.el7                                          base                                                       8.0 M
 perl-Carp                                                            noarch                                          1.26-244.el7                                              base                                                        19 k
 perl-Encode                                                          x86_64                                          2.51-7.el7                                                base                                                       1.5 M
 perl-Exporter                                                        noarch                                          5.68-3.el7                                                base                                                        28 k
 perl-File-Path                                                       noarch                                          2.09-2.el7                                                base                                                        26 k
 perl-File-Temp                                                       noarch                                          0.23.01-3.el7                                             base                                                        56 k
 perl-Filter                                                          x86_64                                          1.49-3.el7                                                base                                                        76 k
 perl-Getopt-Long                                                     noarch                                          2.40-3.el7                                                base                                                        56 k
 perl-HTTP-Tiny                                                       noarch                                          0.033-3.el7                                               base                                                        38 k
 perl-PathTools                                                       x86_64                                          3.40-5.el7                                                base                                                        82 k
 perl-Pod-Escapes                                                     noarch                                          1:1.04-293.el7                                            base                                                        51 k
 perl-Pod-Perldoc                                                     noarch                                          3.20-4.el7                                                base                                                        87 k
 perl-Pod-Simple                                                      noarch                                          1:3.28-4.el7                                              base                                                       216 k
 perl-Pod-Usage                                                       noarch                                          1.63-3.el7                                                base                                                        27 k
 perl-Scalar-List-Utils                                               x86_64                                          1.27-248.el7                                              base                                                        36 k
 perl-Socket                                                          x86_64                                          2.010-4.el7                                               base                                                        49 k
 perl-Storable                                                        x86_64                                          2.45-3.el7                                                base                                                        77 k
 perl-Text-ParseWords                                                 noarch                                          3.29-4.el7                                                base                                                        14 k
 perl-Time-HiRes                                                      x86_64                                          4:1.9725-3.el7                                            base                                                        45 k
 perl-Time-Local                                                      noarch                                          1.2300-2.el7                                              base                                                        24 k
 perl-constant                                                        noarch                                          1.27-2.el7                                                base                                                        19 k
 perl-libs                                                            x86_64                                          4:5.16.3-293.el7                                          base                                                       688 k
 perl-macros                                                          x86_64                                          4:5.16.3-293.el7                                          base                                                        44 k
 perl-parent                                                          noarch                                          1:0.225-244.el7                                           base                                                        12 k
 perl-podlators                                                       noarch                                          2.5.1-3.el7                                               base                                                       112 k
 perl-threads                                                         x86_64                                          1.87-4.el7                                                base                                                        49 k
 perl-threads-shared                                                  x86_64                                          1.43-6.el7                                                base                                                        39 k
Updating for dependencies:
 postfix                                                              x86_64                                          2:2.10.1-7.el7                                            base                                                       2.4 M

Transaction Summary
=================================================================================================================================================================================================================================================
Install  3 Packages (+29 Dependent packages)
Upgrade             (  1 Dependent package)

Total download size: 426 M

 

啓動MySQL服務
systemctl start mysqld.service
運行一下命令查看一下運行狀態
systemctl status mysqld.service

設置開機啓動:sql

systemctl enable mysqld
systemctl daemon-reload數據庫

mysql的密碼管理

一、查詢mysql的初始密碼:vim

初始密碼密碼是隨機產生的,每臺機器產生的都不同的:安全

grep 'temporary password' /var/log/mysqld.log dom

或者ide

cat /var/log/mysqld.log | grep 'temporary password'post

[root@localhost ~]#grep 'temporary password' /var/log/mysqld.log 
2019-01-08T07:44:08.711112Z 5 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: d2t511xRrg;>

將以上密碼複製在登陸時用到;測試

二、登陸mysql的命令

mysql -uroot -p[回車],而後將複製的臨時密碼粘貼,回車。

若是手打輸入密碼,此處是不可見,而且不能刪除,輸入錯誤了請回車後從新輸入,即便退格鍵也會被當作是字符密碼來驗證。

 三、修改mysql密碼
第一次登陸須要重置密碼,不然其餘操做都會報如下錯誤:
ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.

重置密碼的命令以下(在skip-grant-tables 中不可用;惟一在8.0中生效的改密碼方法,後面幾個方法測試都是報錯,可能在mysql5.7沒問題;):
ALTER USER 'root'@'localhost' IDENTIFIED BY '****************';

mysql默認安裝了密碼安全檢查插件(validate_password),默認密碼檢查策略要求密碼必須包含:大小寫字母、數字和特殊符號,而且長度不能少於8位。
不然會提示ERROR 1819 (HY000): Your password does not satisfy the current policy requirements錯誤。

mysql> show variables like 'vali%';
+--------------------------------------+--------+
| Variable_name                        | Value  |
+--------------------------------------+--------+
| validate_password.check_user_name    | ON     |
| validate_password.dictionary_file    |        |
| validate_password.length             | 8      |
| validate_password.mixed_case_count   | 1      |
| validate_password.number_count       | 1      |
| validate_password.policy             | MEDIUM |
| validate_password.special_char_count | 1      |
+--------------------------------------+--------+
7 rows in set (0.03 sec)

 validate_password_length 8 # 密碼的最小長度,此處爲8。
 validate_password_mixed_case_count 1 # 至少要包含小寫或大寫字母的個數,此處爲1。
 validate_password_number_count 1 # 至少要包含的數字的個數,此處爲1。
 validate_password_policy MEDIUM # 強度等級,其中其值可設置爲0、一、2。分別對應:
                           【0/LOW】:只檢查長度。
                           【1/MEDIUM】:在0等級的基礎上多檢查數字、大小寫、特殊字符。
                           【2/STRONG】:在1等級的基礎上多檢查特殊字符字典文件,此處爲1。
 validate_password_special_char_count 1 # 至少要包含的個數字符的個數,此處爲1。

四、數據庫受權

數據庫沒有受權前,只支持localhost本地訪問,受權以下:
mysql>GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '******' WITH GRANT OPTION;
//遠程鏈接數據庫的時候須要輸入用戶名和密碼
用戶名:root
密碼:******
指定ip地址:%表明全部ip,此處也能夠按實際需求輸入肯定的ip地址來指定ip
輸入後使修改生效還須要下面的語句:
mysql>FLUSH PRIVILEGES;

flush privileges 命令本質上的做用是將當前user和privilige表中的用戶信息/權限設置從mysql庫(MySQL數據庫的內置庫)中提取到內存裏。MySQL用戶數據和權限有修改後,但願在"不重啓MySQL服務"的狀況下直接生效,那麼就須要執行這個命令。一般是在修改ROOT賬號的設置後,怕重啓後沒法再登陸進來,那麼直接flush以後就能夠看權限設置是否生效。而沒必要冒太大風險。

也能夠經過修改表來實現遠程:
mysql> use mysql;
mysql> update user set host = '%' where user = 'root';
mysql> select host, user from user;

也能夠用直接再添加新用戶的方法解決:
CREATE USER ‘root‘@‘%‘ IDENTIFIED BY ‘******‘;
grant all on *.* to 'root001'@'%' identified by 'Root@@'  with grant option;

增長root用戶指定能夠任意IP登陸,若是想限制只能讓指定IP登陸請把%替換成IP地址。

五、忘記mysql的登陸密碼了
首先找到mysql的配置文件my.cnf 通常在  /etc/my.cnf :

vim /etc/my.cnf 

在最後一行添加上:skip-grant-tables

保存退出,重啓mysqld 使之生效,用mysql -uroot直接進入數據庫

mysql>use mysql;

mysql> UPDATE mysql.user SET Password = password ( 'xinmima' ) WHERE User = 'root' ;//單引號內的字符即便須要設置的新密碼

mysql> update mysql.user set authentication_string=password('新密碼') where user='root';

mysql> flush privileges ;

mysql>quit

改完密碼後,將配置文件改回來,刪除 /etc/my.cnf 文件裏面的「skip-grant-tables」。

重啓數據庫服務mysqld,而後就可使用 mysql -uroot -p輸入你的新密碼進入了。

在第一次重啓後,mysql數據庫處於徹底沒有密碼保護的狀態,其餘任何用戶都不須要密碼直接能夠登陸mysql數據庫。須要保證沒有其餘用戶在登陸或者鏈接。

本次使用的是CentOS7.5版本和mysql8.0.13的版本。正確語法以下:
update user set authentication_string='' where user='root';

mysql> flush privileges ;

mysql>quit

MySQL修改初始密碼三種方法:

方法一:

一、使用空的初始密碼登陸mysql帳號:
mysql-uroot -p

二、修改root密碼:
SETPASSWORD = PASSWORD('123456');

方法二:

一、使用空的初始密碼登陸mysql帳號:
mysql-uroot -p

二、修改root密碼:
mysqladmin -u root password '123456'

方法三:

一、使用空的初始密碼登陸mysql帳號:
mysql-uroot -p

二、修改root密碼:
mysql> update user set Password=password("123456") where User='root';
Query OK, 4 rows affected (0.01 sec)
Rows matched: 4 Changed: 4 Warnings: 0

mysql> flush privileges;
Query OK, 0 rows affected (0.04 sec)

mysql> select Host,User,password from user where user='root';
+-----------------------+------+-------------------------------------------+
| Host | User | password |
+-----------------------+------+-------------------------------------------+
| localhost | root | *5626ED34B75C6C508BA2A3D0A4F6E4C58823138C |
| localhost.localdomain | root | *5626ED34B75C6C508BA2A3D0A4F6E4C58823138C |
| 127.0.0.1 | root | *5626ED34B75C6C508BA2A3D0A4F6E4C58823138C |
| ::1 | root | *5626ED34B75C6C508BA2A3D0A4F6E4C58823138C |
+-----------------------+------+-------------------------------------------+
4 rows in set (0.00 sec)

mysql 5.7的數據庫沒有了password字段,用的是authentication_string字段:
mysql> update mysql.user set authentication_string=password('root') where user='root' ;
mysql> flush privileges;
mysql 8.0.13的數據庫用的也是authentication_string字段:
mysql> update mysql.user set authentication_string='******' where user='root' ;
mysql> flush privileges;

參考:https://www.cnblogs.com/jimmyTang-J/p/9698211.htmlhttps://blog.csdn.net/xuheng8600/article/details/80034647https://blog.csdn.net/z13615480737/article/details/78907697

相關文章
相關標籤/搜索