当前位置:网站首页>Solve the problem of remote connection to MySQL under Linux in Windows

Solve the problem of remote connection to MySQL under Linux in Windows

2022-07-06 10:10:00 Eric-x

Preface

In actual development , We must connect to the database remotely , How is this set , Let's explore .


Preparation conditions : One has MySQL Virtual machine of database , One has MySQL Database window

1、 problem

In use SQLyog or Navicat Configure remote connections in Mysql The following error messages are encountered when the database , This is because Mysql Configured... Caused by unsupported remote connection .
 Insert picture description here

2、 Confirm the network

stay window Upper use ping ip Address Make sure the network is smooth
for example :ping 192.168.1.150

Turn on window Medium Telnet client

Open the control panel , Select small icon display , Click programs and functions , Then click enable or close window function
 Insert picture description here
take Telnet Client check
 Insert picture description here

3、 Turn off firewall or open port

Want to connect Linux Under the MySQL, You need to turn off the firewall or open the port , Choose one of them

The way 1: Turn off firewall

CentOS6 Instructions :service iptables stop
CentOS7 Appoint :systemctl stop firewalld.service

Set boot disable firewall :systemctl disable firewalld.service

The way 2: Open ports

// Check the open port number 
firewall-cmd --list-all

// Set the open port number 
firewall-cmd --add-service=http --permanent
firewall-cmd --add-port=3306/tcp --permanent

// service iptables restart 
firewall-cmd --reload

4、 modify Linux Configuration below

1、 Turn on the virtual machine , Connect Linux Under the MySQL, Use as follows sql

use mysql;

select Host,User from user;

 Insert picture description here You can see root The current host configuration information of the user is localhost. It means using root Users can only connect to the database locally

modify Host For wildcard %

Host Column specifies the IP, such as user=root Host=192.168.1.1. This means that root Users can only pass through 192.168.1.1 Client access . user=root Host=localhost, It means that it can only be accessed through the local client . and % It's a wildcard , If Host=192.168.1.%, So that means as long as it's IP Address prefix is “192.168.1.” All clients of can connect . If Host=% , Express all IP All have connection permission .

Be careful : In a production environment, you can't save host Set to %, There will be security problems , Specific settings can be set according to the production environment IP Set it up

update user set host = '%' where user ='root';

Host Set up “%” Then you can allow remote access .
 Insert picture description here
Host Remember to execute after modification flush privileges Make the configuration take effect immediately :

flush privileges;

5、 test

  • If it is MySQL5.7 edition , You can use SQLyog perhaps Navicat Successfully connected to MySQL 了 .
  • If it is MySQL8 edition , The following problems also occur when connecting :
     Insert picture description here
    Configuration new connection error : Wrong number 2058, The analysis is mysql Password encryption has changed

resolvent :Linux Next mysql -u root -p Log in to your mysql database , then Implement this SQL:

ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'abc123';

And then reconfigure SQLyog The connection of , The connection is successful , Fix up the work .


summary

In fact, the process is still very simple :

  • First, check whether this machine can ping Through virtual machines IP Address
  • Turn on window Medium Telnet Client services
  • close Linux The firewall of ( Or open 3306 port )
  • modify Linux Next MySQL Remote connection configuration ( Remember to refresh it immediately )
  • Finally, if it is MySQL8.0 Reuse as above SQL Set up MySQL You can succeed ~
原网站

版权声明
本文为[Eric-x]所创,转载请带上原文链接,感谢
https://yzsam.com/2022/187/202207060910052731.html