第二弹、本地连接服务器Mysql数据库
注:命令操作基于SecureCRT。
在Ubantu服务器上成功安装Mysql数据库后,为了方便管理服务器数据库和简化开发流程,我们可以建立一个远程连接管理。
思路:在服务器Mysql新建管理用户frend(名称自行定义) --> 本地Mysql使用frend账户连接服务器数据库。
这里我们为什么要使用新用户来管理呢?在Mysql安装中,默认的有root用户,但是root用户的默认连接Host也是localhost或者127.0.0.1,也就是限制了root用户作为本地连接使用;我个人来说,建立新账户也是安全性和更加方便。
现在用我们之前的命令
mysql -u root -p;
然后输入密码进入mysql命令行操作。
使用数据库命令,必须要先输入如下命令,否则会报ERROR 1046 (3D000): No database selected 错误。
use mysql;
接着查看当前数据库账户信息,
select user,host from user;
会出现类似如下界面,只有本地账户root帐号信息
可以看到用户host显示都是只能本地使用的。现在为了让我们可以远程的连接服务器数据库,我们需要新建一个具有远程连接权限的数据库账户,使用如下命令创建:
grant all privileges on *.* to frend@"%" identified by "abc123" with grant option;
grant是授权命令,其中frend是我们连接用的用户名、"abc123"是连接密码,用户名后面的“%”通用符表示允许各host操作。
然后输入如下命令刷新数据库账户权限:
flush privileges;
到这里我们最好是要重启数据库的,但是有个重要的事情我们还没做,别急!我们需要修改mysql的配置文件,因为在服务器的/etc/mysql 下有个my.cnf的数据库配置文件,在里面有一行命令bind-address= 127.0.0.1 ,正是它又一步的限制了数据库的地址访问。所以我们现在要进入配置文件并注释掉这一行命令,然后重启数据库。
vim /etc/mysql/my.cnf
然后按Insert键进入编辑模式,找到bind-address= 127.0.0.1 这行命令,在它前面加上#符号,完成注释,按ESC键,然后按 : 冒号键,输入wq(保存并退出)编辑模式。好了现在回到了SecureCRT的命令行,输入如下命令:
/etc/init.d/mysql restart
重启mysql数据库即可完成任务。
验证我们创建的用户,并使用Mysql的图形化操作软件Navicat测试连接
输入命令:
use mysql;
select user,host from user;
这里就可以看到创建出来的用户了,并看到了host是%。
Navicat测试远程连接,根据提示输入信息,得到结果:
后面附上部分类型Linux服务器的mysql启动、停止、重启mysql的命令。
——————————————————割割割————————————————————
各种服务器重启MySQL的方法
ps: (转载自:http://www.linuxidc.com/Linux/2011-06/37396.htm)
RedHat Linux (Fedora Core/Cent OS)
1.启动:/etc/init.d/mysqld start
2.停止:/etc/init.d/mysqld stop
3.重启:/etc/init.d/mysqld restart
Debian / Ubuntu Linux
1.启动:/etc/init.d/mysql start
2.停止:/etc/init.d/mysql stop
3.重启:/etc/init.d/mysql restart
Windows(Windows下不能直接重启(restart),只能先停止,再启动)
1.点击“开始”->“运行”(快捷键Win+R)
2.启动:输入 net stop mysql
3.停止:输入 net start mysql
提示
Redhat Linux 也支持service command,
启动:# service mysqld start
停止:# service mysqld stop
重启:# service mysqld restart
——————————————————割割割————————————————————
同时,当我们服务器安装mysql完尝试远程连接时遇到以下错误,也可以尝试用以上方法解决:
1、"2003 Can't connect to MySQL server on '192.168.1.***' (10061)"错误
2、"'192.168.1.***' not allowed to connectted "...类型错误
目前遇到以上两个问题,未完待补充...