环境:linux mint 15

安装openssl:

sudo apt-get install openssl

查看mysql的ssl是否开启了(在mysql 命令行中):

show variables like '%ssl%'; 若没开启则`have_openssl`和`have_ssl`选项的值为DISABLED。

生成证书(在mysql server主机下):

建议在/etc/mysql建立目录certs:

# cd /etc/mysql/

# mkdir certs

# cd certs

# openssl genrsa 2048 > ca-key.pem

# openssl req -new -x509 -nodes -days 1095 -key ca-key.pem -out ca-cert.pem

# openssl req -newkey rsa:2048 -days 1095 -nodes -keyout server-key.pem -out server-req.pem

# openssl rsa -in server-key.pem -out server-key.pem

# openssl x509 -req -in server-req.pem -days 1095 -CA ca-cert.pem -CAkey ca-key.pem -set_serial 01 -out server-cert.pem 注意,如果`sudo openssl genrsa 2048 > ca-key.pem`的话会提示权限不够。

之后修改mysql服务器主机下的配置文件:

# vim /etc/mysql/my.cnf 在`[mysqld]`后添加:

ssl

ssl-cipher=DHE-RSA-AES256-SHA

ssl-ca=/etc/mysql/certs/ca-cert.pem

ssl-cert=/etc/mysql/certs/server-cert.pem

ssl-key=/etc/mysql/certs/server-key.pem 重启mysql,进入mysql命令行`show variables like '%ssl%';`看到:

+---------------+----------------------------------+

| Variable_name | Value |

+---------------+----------------------------------+

| have_openssl | YES |

| have_ssl | YES |

| ssl_ca | /etc/mysql/certs/ca-cert.pem |

| ssl_capath | |

| ssl_cert | /etc/mysql/certs/server-cert.pem |

| ssl_cipher | DHE-RSA-AES256-SHA |

| ssl_key | /etc/mysql/certs/server-key.pem |

+---------------+----------------------------------+

配置

mysql client

将ca-cert.pem拷贝到mysql client主机下的/etc/mysql/certs目录下,打开client下的my.cnf,在`[client]`后添加:

ssl

ssl-cipher=DHE-RSA-AES256-SHA

ssl-ca=/etc/mysql/certs/ca-cert.pem 重启client下的mysql。

开始远程登录吧:

在server 主机上为mysql建立一个新的用户:

GRANT ALL ON *.* TO 'ssl-user'@'%' identified by '123456' REQUIRE SSL;

flush privileges; 然后在client登录:

mysql -h -u ssl-user -p

mysql> \s

mysql> status \s和status作用相同,我们应该会看到:

SSL: Cipher in use is DHE-RSA-AES256-SHA

如果client的my.cnf没有配置好,是无法使用ssl-user用户登录server的。

使用navicat

常规方法就不说了。

1、使用SSH

注意在“常规”选项卡中,主机名或者ip地址是localhost,连接名自定义,用户名和密码是mysql server的user和对应的密码。

在“SSH”选项卡中,主机名是mysql server的ip,用户是mysql server所在主机的用户名。mysql server所在主机必须开启ssh服务。

2、使用SSL

“常规”选项卡中的ip要改为server的ip,用户名本身应有“REQUIRE SSL”属性。

在“SSL”选项卡中,选中“使用SSL”,别忘了取消选中SSH。这时候可以正常连接,但是若选中“使用验证”并添加相应ca,死活没连上(不做讨论)。

3、使用HTTP

需要将navicat目录下的ntunnel_mysql.php拷贝到mysql server主机上的支持php的网站目录中(如/var/www)。通道地址即为该php文件的网络url。用户和密码是数据库的用户及其密码。

一些资料:

[Simplified MySQL SSL connections](http://www.mysqlfanboy.com/2011/11/simplified-mysql-ssl-connections/)

[6.3.6. Using SSL for Secure Connections](http://dev.mysql.com/doc/refman/5.0/en/ssl-connections.html)

[6.3.7. Connecting to MySQL Remotely from Windows with SSH](http://dev.mysql.com/doc/refman/5.0/en/windows-and-ssh.html)

mysql ssl 登陆_MySQL:SSL远程登录相关推荐

  1. mysql拒绝访问root用户_设置mysql的root用户允许远程登录

    设置MySQL的root用户允许远程登录 连接数据库 [root@localhost ~]# mysql -uroot -p密码 选择mysql数据库 mysql> use mysql; 设置访 ...

  2. MySQL数据库开启root用户远程登录

    MySQL数据库开启root用户远程登录 如果mysql不支持远程连接,会出现提示:错误代码是1130,ERROR 1130: Host 192.168.0.10 is not allowed to ...

  3. mysql 远程登录_MySQL实现远程登录的方法

    原因分析: Host 'Local' is not allowed to connect to this MySQL server 典型的远程权限问题. 问题症结: MySQL 没有开放远程登录的权限 ...

  4. mysql 网络远程登录_mysql实现远程登录

    CentOS7上安装mysql后,想要实现mysql远程登录. 主要解决二个问题:(1)为mysql用户授予远程登录权限(改表法或授权法):(2)防火墙开放3306端口. (一)授予登录权限 mysq ...

  5. linux安装mysql允许外部访问权限_Linux yum 安装mysql以及进行授权允许远程登录

    一.安装查看有没有安装过 yum list installed mysql* rpm -qa | grep mysql* 查看有没有安装包: yum list mysql* 安装mysql客户端: y ...

  6. ubuntu 打开ssh登陆_Ubuntu 开启远程登录 SSH 的安装和配置

    SSH 为 SecureShell 的缩写,由 IETF 的网络工作小组(NetworkWorkingGroup)所制定:SSH 是一种安全协议,主要用于给远程登录会话数据进行加密,保证数据传输的安全 ...

  7. mysql 无法登陆_MySQL root用户无法登录原因及解决办法

    MySQL root密码正确,却怎么也bai无法du从本地登录MySQL登录提示ERROR 1045 (28000): Access denied for user 'root'@'localhost ...

  8. mysql可连接_mysql开启远程可连接

    1.打开cmd窗口,进入MySql安装的bin目录 2.执行命令登录数据库,之后会出现一行要你输入密码的 mysql -u root -p 3.执行以下命令分配新用户: grant all privi ...

  9. mysql 本地连接_mysql开启远程连接及本地连接

    问题描述 在本机windows上连接linux服务器上的mysql报错:host'XXX' is not allowed to connect to this mysql server. 这个错误是由 ...

最新文章

  1. 最新DynamipsGUI2.8[模拟器]发布!(中文版-英文版下载)
  2. c#与halcon模板匹配控制EPSON四轴机器人输出旋转角度
  3. ssh暴力破解解决方案
  4. linux 0x00,linux 学习笔记0x00
  5. IMP出现的ORA-01401错误可能和字符集有关(转载)
  6. 精品书籍-go go go
  7. Spark家族:Win10系统下搭建Scala开发环境
  8. 使用getApplication()作为上下文的对话框抛出“无法添加窗口-令牌null不适用于应用程序”
  9. 吴军-《智能时代》-简介
  10. baacloud苹果_Baacloud手机客户端下载
  11. mac电脑安装mysql
  12. numpy的choose 函数实现条件筛选
  13. 网络空间安全——2021软科中国大学专业排名
  14. Android分享wifi给电脑,使用Android手机共享手机网络给PC上网
  15. 苹果应用审核注意事项
  16. HTML5滑动(swipe)事件,HTML5教程 滑动(swipe)事件学习
  17. vue聊天功能模块(五)pre标签使得消息表情换行
  18. 计算机专业优势及就业前景,女生学习计算机专业的优势及就业前景
  19. 性感荷官在线发牌,真的靠谱吗?
  20. 云服务器的“弹性”体现在哪?

热门文章

  1. 黑鲨科学计算机,科学技术篇:玩家注意黑鲨一口气发布两款重磅新品
  2. 全国志愿信息服务器,全国志愿者服务信息系统官网登录,2020全国志愿者服务信息系统官网登录注册入口预约 v1.0-手游汇...
  3. python flask高级编程之restful_('Python Flask高级编程之RESTFul API前后端分离精讲',),全套视频教程学习资料通过百度云网盘下载...
  4. 第十篇学会编写python代码_Python之路,第十篇:Python入门与基础10
  5. windows下重启mysql数据库_windows下重启mysql的方法
  6. java 重复start,iText中带有“start”属性的有序列表[重复]
  7. android xml opacity,Android Drawable详解
  8. python抽奖游戏_python实现转盘效果 python实现轮盘抽奖游戏
  9. python读取字符串的list dict_转:Python 列表(list)、字典(dict)、字符串(string)常用基本操作小结...
  10. 下午花一小时整理的JVM运行时方法区