华为云 远程连接Mysql

引言

最近在自己的华为云服务器上想装一个MySQL 作为远程的数据库使用,数据库安装之后在本地访问远程数据库遇到了问题,一直报错10038 ,于是开始了漫长的翻帖爬楼的历程。在这里将这爬楼的历程记录下来。

总的来说,(10038) 错误有以下几种解决方式:

1. mysql 数据库 user表 的 host 由 localhost 改为 %

2. 更改root用户的授权(与 1 相似 )

3. 更改服务器的防火墙设置(即:开放服务器的3306端口的入站访问)

4.  更改mysql 的配置文件(到这才解决)

 

下面分别对使用这几种方法解决问题的过程进行详细的说明:

一  更改mysql 数据库 user表 的 host 

1. 通过远程访问服务器,登录数据库

2. 选择使用mysql数据库,并查看user 表中的host 信息

3. 更改root 用户的host 信息

mysql -u root -p

mysql> use mysql;
mysql> select user,host from user;
mysql> grant all privileges on *.* to 'root'@'%' identified by 'password' with grant option;
mysql> select user,host from user;
​mysql> flush privileges;

华为云 远程连接Mysql_第1张图片

注:*.* 指所有的数据库中所有的表,localhost 之仅本机可访问,%指所有的ip 均可访问。

二 更改服务器防火墙

在云服务器的安全组设置中开放3306 端口(mysql)。

华为云 远程连接Mysql_第2张图片

添加完成后记得刷新,并进入服务器管理的控制台刷新服务器。

三 更改mysql 的配置文件

MySQL配置文件中会默认只能本地访问。具体参数为 bind-address = 127.0.0.1 ,需要在配置文件中将设置信息注释掉。这个参数的具体位置在

/etc/mysql/mysql.conf.d/mysqld.cnf

下面,我们来复现下具体的寻找过程。。。

cd /etc/mysql
ls
cat my.cnf
 
    !includedir /etc/mysql/conf.d/
    !includedir /etc/mysql/mysql.conf.d/
cd conf.d
ls
cd ../mysql.conf.d
ls
vim mysqld.cnf

心里那是一个累啊。。。。(大家可以直接找到文件 mysqld.cnf 更改参数即可)

vim /etc/mysql/mysql.conf.d/mysqld.cnf

华为云 远程连接Mysql_第3张图片

使用vim 编辑 mysqld.cnf 文件:

华为云 远程连接Mysql_第4张图片

找到 bind-address  = 127.0.0.1 并注释掉,到此问题解决!(大概在40行以后)

下面是远程连接成功的截图

华为云 远程连接Mysql_第5张图片

总结

虽然解决问题的过程是很痛苦的,无休止的爬楼,爬楼仍然解决不了的时候会使人崩溃。可是在弄清楚每一个步骤所解决的问题和问题背后的知识收获还是很大的。更重要的是,大家应该都有体会,在解决问题那一刻的愉悦是很享受的。

你可能感兴趣的:(mysql,mysql,云服务器,MySQL,配置)