前言:
安裝過程不再贅述,直接說問題,mysql的遠程連接需要解決兩個問題:1.允許root用戶遠程連接。2.允許任意ip遠程連接數據庫。當然,在測試和解決問題之前,得首先保證你的數據庫與遠程主機之間的網絡通信沒有問題,簡單的來說,就是互相ping通,其次,為了避免防火墻的干擾,將本地主機和數據庫主機的防火墻都關閉,當然,生產環境下防火墻肯定是要打開的,并且需要額外的安全配置。
問題解決:
1.新安裝的數據庫默認是需要初始化的,在數據庫服務啟動的情況下,使用下面的命令來進行初始化。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
|
[root@localhost ~] # mysql_secure_installation New password: Re-enter new password: Password updated successfully! Reloading privilege tables.. ... Success! By default, a MariaDB installation has an anonymous user, allowing anyone to log into MariaDB without having to have a user account created for them. This is intended only for testing, and to make the installation go a bit smoother. You should remove them before moving into a production environment. Remove anonymous users ? [Y /n ] ... Success! Normally, root should only be allowed to connect from 'localhost' . This ensures that someone cannot guess at the root password from the network. ... skipping. By default, MariaDB comes with a database named 'test' that anyone can access. This is also intended only for testing, and should be removed before moving into a production environment. Remove test database and access to it? [Y /n ] - Dropping test database... ... Success! - Removing privileges on test database... ... Success! Reloading the privilege tables will ensure that all changes made so far will take effect immediately. Reload privilege tables now? [Y /n ] ... Success! Cleaning up... All done ! If you've completed all of the above steps, your MariaDB installation should now be secure. Thanks for using MariaDB![root@localhost ~] # systemctl restart mariadb #完成初始化之后,重啟服務。 |
2.允許root用戶遠程連接與允許任意ip遠程連接數據庫都是可以通過在數據庫里執行一條命令來實現的。
這里分為兩種情況:
1)新建admin用戶遠程連接mysql數據庫(新建任意用戶,以admin為例)
grant all on *.* to admin@'%' identified by '123456' with grant option;
flush privileges;
允許任何ip地址(%表示允許任何ip地址)的電腦用admin帳戶和密碼(123456)來訪問這個mysql server。
注意admin賬戶不一定要存在。
2)支持root用戶允許遠程連接mysql數據庫
grant all privileges on *.* to 'root'@'%' identified by '123456' with grant option;
flush privileges;
需要注意的是,為root用戶配置遠程登陸,密碼需要和之前配置的密碼一致。
3.ubuntu系統的額外配置。
Ubuntu系統的my.cnf文件在vim /etc/mysql/mysql.conf.d/mysqld.cnf中,注釋掉其中的
bind-address = 127.0.0.1
centos系統的配置文件中默認沒有該行。
檢查的辦法也很簡單,在數據庫啟動的前提下,使用netstat -an | grep 3306查看端口的連接信息。0.0.0.0則表示允許任意IP連接。
如圖所示則為允許任意IP連接。
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持服務器之家。
原文鏈接:https://www.cnblogs.com/xiaoyuxixi/p/12069022.html