你的位置:
问答吧
-> MySQL
-> 问题详情
$bindir/mysqld_safe --datadir=$datadir --pid-file=$server_pid_file --bind-addres
$bindir/mysqld_safe --datadir=$datadir --pid-file=$server_pid_file --bind-address=127.0.0.1$other_args >/dev/null 2>&1 &
这是禁止外IP连接的..现在 我想添加一个IP能访问的.语句怎么写呀?
作者: liangcq132
发布时间: 2010-12-07
PHP的不太懂哦
作者: linhai0103
发布时间: 2010-12-07
这是在 /etc/init.d/mysql 文件里的.
作者: liangcq132
发布时间: 2010-12-07
MYSQL可以通过客户端工具来联接或者是数据访问组件来访问,只要知道知道服务器地址和用户名密码,现在为了安全我只接受某个IP的计算机的访问,对于其他计算机,就算他知道服务器IP,用户名和密码都不能访问。
可以不?
作者: liangcq132
发布时间: 2010-12-07
$bindir/mysqld_safe --datadir=$datadir --pid-file=$server_pid_file --bind-address=127.0.0.1$other_args >/dev/null 2>&1 &
删除这个参数,另外还在在MYSQL中进行授权。 MYSQL的账号是由用户名@主机来形成的, 也就是说 liangcq132@127.0.0.1 和liangcq132@csdn.net 是完全不同的两个用户。
作者: ACMAIN_CHM
发布时间: 2010-12-07
参考一下http://www.phpfans.net/article/htmls/201007/MjkwNTkx.html
去掉--bind-address=127.0.0
作者: WWWWA
发布时间: 2010-12-07
去掉--bind-address=127.0.0 ,,全部可以远程连接呀.现在我想允许特定的一个IP可以远程连接呀
作者: liangcq132
发布时间: 2010-12-07
-bind-address=127.0.0 去掉了远程连接,你怎么指定IP?
参考上述网址,指定可以访问MYSQL的IP、OR 用户名
作者: WWWWA
发布时间: 2010-12-07
引用去掉--bind-address=127.0.0 ,,全部可以远程连接呀.现在我想允许特定的一个IP可以远程连接呀
这个参数--bind-address 并不是允许某个IP访问,而是MYSQL服务绑定的IP。
你去掉这个后,然后需要到MYSQL中进行账号的授权管理。
作者: ACMAIN_CHM
发布时间: 2010-12-07
MySQL 5.1参考手册
5.8. MySQL用户账户管理
5.8.1. MySQL用户名和密码
5.8.2. 向MySQL增加新用户账户
5.8.3. 从MySQL删除用户账户
5.8.4. 限制账户资源
5.8.5. 设置账户密码
5.8.6. 使你的密码安全
5.8.7. 使用安全连接
本节描述如何为MySQL服务器的客户端设置账户。讨论了下面的主题:
· MySQL使用的账户名和密码的含义,以及如何比较你的操作系统所使用的账户名和密码
· 如何设置新账户并移除已有账户
· 如何更改密码
· 安全使用密码指导
· 如何使用安全SSL连接
5.8.1. MySQL用户名和密码
用用户名和客户端或主机定义MySQL账户,用户可以根据这些名称来连接服务器。账户也有密码。MySQL和操作系统使用用户名和密码的方式有几处区别:
· MySQL用于鉴定目的用户名与Windows或Unix使用的用户名(登录名)没有关系。在Unix中,大多数MySQL客户端默认试图使用当前Unix的用户名作为MySQL用户名来登录,但这样只是为了方便。 默认值可以很容易被覆盖,因为客户端程序允许用-u或--user选项来指定用户名。因为这表示任何人可以试图使用任何用户名来连接服务器,除非所有MySQL账户有密码,否则你不能使数据库保持安全。通过为没有密码的账户指定用户名,任何人能够成功连接服务器。
· MySQL用户名最大客达16字符长。这样可以限制MySQL服务器和客户端之间的硬编码,并且防止通过修改mysql数据库中表的定义来偷窃密码。
注:你应绝对不要以任何方式修改mysql数据库中的任何表,只能运行MySQL分发中专为此目的提供的脚本。将MySQL系统表重新定义为其它方式会导致未定义的(和不支持的!)行为。
操作系统用户名与MySQL用户名完全不相关,甚至最大长度可能不同。例如, Unix用户名限制为8个字符。
· MySQL密码与登录到你的操作系统的密码没有关系。不需要将你用来登录Windows或Unix机器的密码和你用来访问该机器上的MySQL服务器的密码关联起来。
· MySQL的加密密码使用自己的算法。该加密算法不同于Unix登录过程使用的算法。MySQL密码加密与PASSWORD()SQL函数的方法相同。Unix密码加密与ENCRYPT()SQL函数的方法相同。PASSWORD()和ENCRYPT()函数的描述参见12.9.2节,“加密函数”。从版本4.1 起,MySQL使用更强的鉴定方法,同以前的版本相比可以在连接过程中提供更好的密码保护。即使TCP/IP包被截取或mysql数据库被捕获也很安全。(在前面的版本中,即使密码以加密形式保存到user表中,仍可以通过加密密码值来连接MySQL服务器)。
当安装MySQL时,授权表装载时有一系列初使账户。这些账户的名称和访问权限见2.9.3节,“使初始MySQL账户安全”,其中还讨论了如何未这些账户赋予密码。因此,你一般应使用GRANT和REVOKE语句来设置、修改和移除MySQL账户。参见13.5.1.3节,“GRANT和REVOKE语法”。
当用命令行客户端连接MySQL服务器时,你应为想要使用的账户指定用户名和密码:
shell> mysql --user=monty --password=guess db_name
如果你想用较短的选项,命令应为:
shell> mysql -u monty -pguess db_name
-p选项和后面的密码值之间绝对不能有空格。参见5.7.4节,“与MySQL服务器连接”。
前面的命令包括命令行中的密码值,会很危险。参见5.8.6节,“使你的密码安全”。要想避免,指定--password或-p选项后面不跟任何密码值:
shell> mysql --user=monty --password db_name
shell> mysql -u monty -p db_name
然后客户端程序输出提示符并等待你输入密码。(在这些示例中,db_name并不为密码,因为用空格将它同前面的密码项隔离开了)。
在一些系统中,MySQL用来提示输入密码的库调用自动将密码限制到8个字符。这是系统库的问题,而不是MySQL的问题。MySQL本身并不限制密码的长度。要解决该问题,将MySQL密码改为8个字符和更少字符的值,或将密码放入选项文件中。
5.8.2. 向MySQL增加新用户账户
可以用两种方式创建MySQL账户:
· 使用GRANT语句
· 直接操作MySQL授权表
最好的方法是使用GRANT语句,因为这样更精确,错误少。从MySQL 3.22.11起提供了GRANT;其语法见13.5.1.3节,“GRANT和REVOKE语法”。
创建账户的其它方法是使用MySQL账户管理功能的第三方程序。phpMyAdmin即是一个程序。
下面的示例说明如何使用MySQL客户端程序来设置新用户。假定按照2.9.3节,“使初始MySQL账户安全”描述的 默认值来设置权限。这说明为了更改,你必须以MySQL root用户连接MySQL服务器,并且root账户必须有mysql数据库的INSERT权限和RELOAD管理权限。
首先,使用MySQL程序以MySQL root用户来连接服务器:
shell> MySQL --user=root MySQL
如果你为root账户指定了密码,还需要为该MySQL命令和本节中的其它命令提供--password或-p选项。
以root连接到服务器上后,可以添加新账户。下面的语句使用GRANT来设置四个新账户:
mysql> GRANT ALL PRIVILEGES ON *.* TO 'monty'@'localhost'
-> IDENTIFIED BY 'some_pass' WITH GRANT OPTION;
mysql> GRANT ALL PRIVILEGES ON *.* TO 'monty'@'%'
-> IDENTIFIED BY 'some_pass' WITH GRANT OPTION;
mysql> GRANT RELOAD,PROCESS ON *.* TO 'admin'@'localhost';
mysql> GRANT USAGE ON *.* TO 'dummy'@'localhost';
用GRANT语句创建的账户有下面的属性:
· 其中两个账户有相同的用户名.....
作者: ACMAIN_CHM
发布时间: 2010-12-07
MySQL 5.1参考手册
5.7. MySQL访问权限系统
5.7.1. 权限系统的作用
5.7.2. 权限系统工作原理
5.7.3. MySQL提供的权限
5.7.4. 与MySQL服务器连接
5.7.5. 访问控制, 阶段1:连接核实
5.7.6. 访问控制, 阶段2:请求核实
5.7.7. 权限更改何时生效
5.7.8. 拒绝访问错误的原因
5.7.9. MySQL 4.1中的密码哈希处理
MySQL有先进但非标准的安全/权限系统。本节描述它的工作原理。
5.7.1. 权限系统的作用
MySQL权限系统的主要功能是证实连接到一台给定主机的用户,并且赋予该用户在数据库上的SELECT、INSERT、UPDATE和DELETE权限。
附加的功能包括有匿名的用户并对于MySQL特定的功能例如LOAD DATA INFILE进行授权及管理操作的能力。
5.7.2. 权限系统工作原理
MySQL权限系统保证所有的用户只执行允许做的事情。当你连接MySQL服务器时,你的身份由你从那儿连接的主机和你指定的用户名来决定。连接后发出请求后,系统根据你的身份和你想做什么来授予权限。
MySQL在认定身份中考虑你的主机名和用户名字,是因为几乎没有原因假定一个给定的用户在因特网上属于同一个人。例如,从office.com连接的用户joe不一定和从elsewhere.com连接的joe是同一个人。MySQL通过允许你区分在不同的主机上碰巧有同样名字的用户来处理它:你可以对joe从office.com进行的连接授与一个权限集,而为joe从elsewhere.com的连接授予一个不同的权限集。
MySQL存取控制包含2个阶段:
阶段1:服务器检查是否允许你连接。
阶段2:假定你能连接,服务器检查你发出的每个请求。看你是否有足够的权限实施它。例如,如果你从数据库表中选择(select)行或从数据库删除表,服务器确定你对表有SELECT权限或对数据库有DROP权限。
如果连接时你的权限被更改了(通过你和其它人),这些更改不一定立即对你发出的下一个语句生效。详情参见5.7.7节,“权限更改何时生效”。
服务器在mysql数据库的 授权表中保存权限信息(即在mysql数据库中)。当MySQL服务器启动时将这些表的内容读入内存,在5.7.7节,“权限更改何时生效”的环境下重新读取它们。访问控制决策取决于内存中的 授权表的份数。
一般情况,你通过GRANT和REVOKE语句间接来操作 授权表的内容,设置账户并控制个人的权限。参见13.5.1.3节,“GRANT和REVOKE语法”。下面讨论了 授权表的结构以及服务器与客户端交互操作时如何使用其内容。
服务器在存取控制的两个阶段使用mysql数据库中的user、db和host表,这些授.....
作者: ACMAIN_CHM
发布时间: 2010-12-07
引用楼主 liangcq132 的回复:
$bindir/mysqld_safe --datadir=$datadir --pid-file=$server_pid_file --bind-address=127.0.0.1$other_args >/dev/null 2>&1 &
这是禁止外IP连接的..现在 我想添加一个IP能访问的.语句怎么写呀?
先去掉--bind-address
然后grant all privileges on .* to ....@
这样可以限制IP访问。
作者: iihero
发布时间: 2010-12-07