Answer

问题及解答

远程连接云上Linux服务器的MySQL

Posted by haifeng on 2020-10-01 17:48:22 last update 2020-10-01 18:05:38 | Edit | Answers (0)

目标:我们希望本地电脑编写的 .exe 程序能够连接远程服务器上的MySQL. 其权限被严格限制在一定范围内.

首先使用 root 账号登陆 mysql, 创建一个专门用于远程登陆的账号. 这是从安全角度考. 另外, 如果这个 .exe 程序是用于分发的, 登陆账号的密码如果编译到 .exe 程序中, 则可能会被泄露. 

假设专用登陆的账号为 haifeng, 其密码是 password, 需访问或操作的数据库是 test. 则在mysql 下用root账号执行下面的语句.

GRANT ALL PRIVILEGES ON test.* TO 'haifeng'@'%' IDENTIFIED BY 'password' WITH GRANT OPTION;
FLUSH PRIVILEGES;

 

第二步, 编辑 mysql 的配置文件 my.cnf . 在 ubuntu 14 系统中, 其位于 /etc/mysql/ 目录下. 新版本的可能位于 /etc/mysql/mysql.conf.d/ 目录下.

使用 vim 或其他编辑器打开此文件, 找到 bind-address 一行.  mysql 一般默认未开通远程访问, 因此有如下这一行

bind-address 127.0.0.1 

将其注释, 即前面加上 #

#bind-address 127.0.0.1

保存后退出. 并重启 mysql. 重启的命令是 /etc/init.d/mysqld restart

 

第三步, 编写 C 程序连接此远程服务器上的 mysql.