Linux下Mysql的查看
1、安装
查看是否已经安装了MYSQL
rpm -qa mysql
mysql-4.1.7-4.RHEL4.1
点开add/remove programe里面的mysql的detail
勾上mysql-server
2、启动
来检测mysql是否已经启动
service mysqld status
我们可以用三种方法来启动Mysql:
方法一:使用service命令来
启动Mysql
service mysqld start
停止mysql
service mysqld stop
方法二:使用mysqld脚本来启动Mysql:
/etc/init.d/mysql start
方法三:使用safe_mysqld实用程序启动Mysql服务,此方法可以使用相关参数
safe_mysqld& //使用&表示将safe_mysqld放在后台执行。
3、登陆
修改密码
mysqladmin -u root password
mysqladmin -u root password 'kaishi'
这里的“密码”为我们欲新设的密码。系统会提示我们输入旧密码(若是mysql刚安装,则默认密码为空)
----------------------------------------------------------------------------------------------------------------------------------
Linux上安装Mysql后除了本机其他机器不能访问的问题
本机可以登陆了。但是其他机器的客户端登陆报错。
ERROR 1130 (00000): Host 'xxx.xxx.xxx.xxx' is not allowed to connect to this MySQ
L server
首先查看了iptables的设置,添加开放了3306端口
iptables -A INPUT -p tcp -m tcp --sport 3306 -j ACCEPT
iptables -A OUTPUT -p tcp -m tcp --dport 3306 -j ACCEPT
service iptables save
service iptables restart
还是其他机器不能访问,估计是MYSQL权限问题。
在本机登陆
mysql -h localhost -u root -pkaishi
show databases;
use mysql;
select Host, User, Password from user;
+-----------------------+------+-------------------------------------------+
| Host | User | Password |
+-----------------------+------+-------------------------------------------+
| localhost | root | *18F54215F48E644FC4E0F05EC2D39F88D7244B1A |
| localhost.localdomain | root | |
| localhost.localdomain | | |
| localhost | | |
+-----------------------+------+-------------------------------------------+
可以看到如上结果,只有localhost才设置了访问的权限
进入mysql,创建一个新用户user:
格式:grant 权限 on 数据库名.表名 用户@登录主机 identified by "用户密码"; 查看结果,执行:
use mysql;
select host,user,password from user;
可以看到在user表中已有刚才创建的user用户。host字段表示登录的主机,其值可以用IP,也可用主机名,将host字段的值改为%就表示在任何客户端机器上能以user用户登录到mysql服务器,建议在开发时设为%。
update user set host = '%' where user = 'sillycat';
flush privileges;
修改了权限后需要执行以上语句生效
----------------------------------------------------------------------------------------------------------------------------------
授权法:
该语句表示username可以从远程主机remotehost登录服务器,登录密码是password,并且将所有数据库上的所有表的所有权限都授权给username,同时usrname还可以将权限授权给其他用户。该语句还应该使用flush privileges 使权限生效。
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'root' WITH GRANT OPTION;
FLUSH PRIVILEGES;
----------------------------------------------------------------------------------------------------------------------------------
在Mysql中使用Grant语句提升了权限使所有IP都能访问Mysql之后还是不能在其他机器登录Mysql,最后上网查询资料终于发现是防火墙的问题
发现原来是3306端口根本没有开放被防火墙屏蔽掉了
在防火墙中添加该端口 vi /etc/sysconfig/iptables
添加-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT
更改完了之后输入service iptables restart
实验中始终不能进行远程访问,网上的同志说是防火墙的问题,我把两台主机的哦防火墙都关闭了,但还是不能进行访问,后来进行分析实验过程得知Linux的主机能访问windows的服务器,但Windows的客户端不能访问linux的服务器,我想主要还是linux主机的问题,分析可能是端口的原因,第一次粗心的只将mysql的3306 UDP端口设为可信,后来仔细检查原来3306端口还有TCP的可信端口,将3306的TCP端口设为可信端口,并在/etc/sysconfig/iptabls文件夹中检查其端口设置的内容,可以发现两者都设置了,重启iptable服务service start iptables就可以进行远程访问了。