mysql如何设置ssl连接?

老钱包 2010-06-09 07:51:57
RT!
centos5.5使用yum 安装的mysql5.0.xx

试图ssl链接时候,发现报错
mysql -uroot -p -ssl
mysql: unknown option '-l'

查看ssl是否激活了?

mysql> show variables like '%ssl%';
+---------------+----------+
| Variable_name | Value |
+---------------+----------+
| have_openssl | DISABLED |
| have_ssl | DISABLED |
| ssl_ca | |
| ssl_capath | |
| ssl_cert | |
| ssl_cipher | |
| ssl_key | |
+---------------+----------+
7 rows in set (0.00 sec)

| have_openssl | DISABLED |表明并没有激活这个功能!

以为激活很简单,插入一个字段就可以了!!!
mysql> select ssl_type from mysql.user;
+----------+
| ssl_type |
+----------+
| |
+----------+
1 row in set (0.00 sec)

mysql> update mysql.user set ssl_type="x509" where user="root";
Query OK, 1 row affected (0.00 sec)
Rows matched: 1 Changed: 1 Warnings: 0

重启mysql服务
[root@centos101 opt]# /etc/init.d/mysqld stop
停止 MySQL: [确定]
[root@centos101 opt]# /etc/init.d/mysqld start
启动 MySQL: [确定]


再mysql -uroot -p,傻眼了!!!!密码根本不好用!!!
老是报告:
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)

直到用
/usr/bin/mysqld_safe --skip-networking --skip-grant-tables &
进入mysql命令行,将x509给去掉!这才能重新登录。。。。

那么如何才能设置mysql的ssl连接呢?
...全文
1547 5 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
jkx01whg 2010-06-10
  • 打赏
  • 举报
回复
用make 和make install安装就可以根据说明文档配置了。
iihero 2010-06-09
  • 打赏
  • 举报
回复
默认不带这个的。也很正常。
你也可以参考这个网贴。
http://www.6code.net/programming/linux-mysql-ssl.html
老钱包 2010-06-09
  • 打赏
  • 举报
回复
大锅啊。我这个是yum 安装的,难道yum安装不能支持ssl连接么?二进制包也无法支持么??
ACMAIN_CHM 2010-06-09
  • 打赏
  • 举报
回复
参考手册中的步骤。

MySQL官方文档 http://dev.mysql.com/doc/refman/5.1/zh/index.html

[Quote]5.8.7. 使用安全连接
5.8.7.1. SSL基本概念
5.8.7.2. 需求(OpenSSL)
5.8.7.3. 使用yaSSL
5.8.7.4. 为MySQL设置SSL证书
5.8.7.5. SSL GRANT 选项
5.8.7.6. SSL命令行选项
5.8.7.7. 用SSH以远程方式从Windows连接到MySQL
MySQL支持MySQL客户端和服务器之间的安全(加密的)连接所使用的安全套接字层(SSL)协议。本节讨论如何使用SSL连接。还描述了在Windows中设置SSH的方法。
MySQL的标准配置倾向于尽可能快,因此默认情况不使用加密连接。使用该协议会使客户端/服务器协议慢得多。对数据进行加密非常耗CPU,需要计算机多做许多工作,会延迟MySQL的其它任务。对于需要通过加密连接提供安全的应用程序,可以保证额外的计算。

MySQL允许在连接前启用加密。你可以根据具体应用程序的需求选择普通未加密连接或安全加密SSL连接。

5.8.7.1. SSL基本概念
要想理解MySQL如何使用SSL,需要解释一些基本SSL和X509概念。熟悉的人们可以跳过该部分。
默认情况下,MySQL在客户端和服务器之间使用未加密的连接。这说明可以访问网络的部分人可以看到你的通信,并看到发送和接收的数据。他们甚至可以更改在客户端和服务器之间传递的数据。要想提高安全性,当调用客户端程序时,你可以通过--compress选项压缩客户端/服务器之间的通信。但是,这样并不能阻挡住顽固的攻击者。

当你需要以安全方式在网络中传递信息时,未加密的连接是不可接受的。加密是使任何数据不可读的方法。事实上,今天的许多惯例需要加密算法提供更加安全的要素。它们应能抵抗各种已知的攻击,例如更改加密消息的顺序或两次重放数据。

SSL是一种使用不同的加密算法确保从公用网接收到的数据是可信的协议。它具有检测数据更改、丢失或重放的机制。SSL还包括使用 X509标准提供身份认证的算法。

使用X509,可以识别Internet上的某些人。通常用于电子商务应用程序中。按照基本概念,应有某种称之为“认证机构”(或CA)的机构,可以向请求者分发电子证书。证书依赖非对称加密算法,有两个加密密钥(公共密钥和私人密钥)。认证持有者可以向其它方出示证书来证明身份。证书包括持有者的公共密钥。只能使用对应的私人密钥对含该公共密钥的加密数据进行解密,私人密钥由证书持有者拥有。

如果你需要关于SSL、X509、或加密的详细信息,使用Internet搜索引擎来搜索你感兴趣的关键字。

5.8.7.2. 需求(OpenSSL)
要想在MySQL服务器和客户端程序之间使用SSL连接,系统必须能够支持OpenSSL。如果用支持内嵌式yaSSL的MySQL版本,不要读该节,但应阅读5.8.7.3节,“使用yaSSL”。

要想获得安全的MySQL连接,必须:

1. 安装OpenSSL库。我们已经测试了带OpenSSL 0.9.6的MySQL。如果你需要OpenSSL,请访问http://www.openssl.org。

2. 配置MySQL,用--with-vio和--with-openssl选项运行configure脚本。

3. 确保升级了授权表,使mysql.user表内包含SSL相关列。如果 授权表是从MySQL 4.0.0之前的版本升级,这很重要。升级过程见2.10.2节,“升级授权表”。

4. 要想检查是否运行的mysqld服务器支持OpenSSL,应检查have_openssl系统变量的值:

5. mysql> SHOW VARIABLES LIKE 'have_openssl';
6. +---------------+-------+
7. | Variable_name | Value |
8. +---------------+-------+
9. | have_openssl | YES |
10. +---------------+-------+
如果值为YES,服务器支持OpenSSL连接。

5.8.7.3. 使用yaSSL
使用MySQL的内嵌式yaSSL支持,可以很容易地使用安全连接。不需要安装OpenSSL和执行5.8.7.2节,“需求(OpenSSL)”中的步骤。并且,MySQL和yaSSL使用相同的许可模型。

当前,在以下平台上支持yaSSL:

· Linux/x86-64 Red Hat Enterprise 3.0

· Linux RHAS21 Itanium-2,带gcc,静态链接

· Linux Itanium-2,带gcc

· Windows

当从源码构建MySQL时如果你想要启用yaSSL,应这样配置MySQL:

./configure --with-yassl=yes
要想启动MySQL服务器支持yaSSL,使用支持OpenSSL的相同的选项,并识别建立安全连接需要的证书:
[/Quote]

56,937

社区成员

发帖
与我相关
我的任务
社区描述
MySQL相关内容讨论专区
社区管理员
  • MySQL
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧