Ubuntu Server下启动、停止、重启MySQL数据库的三种方式:
当我们需要修改MySQL的配置文件my.cnf(windows下为 my.ini)来进行一些设置的时候,修改完之后我们需要重启MySQL。修改配置文件 /etc/mysql/my.cnf 中的“default-character-set=utf8” 为 “character_set_server=utf8”
远程连接数据库:
数据库安装完成后,如果数据库是安装在远程的服务器上,则发现只能通过远程连接终端本地连接到数据库,而不能通过像mysql-front,navicat客户端远程连接上数据库,可能出现:
看到这里的MYSQL 10061错误了吗?是因为,mysql的默认配置为了增强安全性,禁止了非本机的访问,在ubuntu中是这样,debian中也是。禁止的方式以前是在my.cnf中有一句:
skip-network
现在则变成了:
就是只监听本机地址。所以,如果要开放局域网内的访问,需要注释掉这一句,或者改成:
bind-address = 0.0.0.0
就行了
这样改完3306端口就开始监听了,但是MYSQL的权限还没有打开ROOT远程登陆
Mysql默认是不允许远程连接的,因为有很大的安全隐患。
需要手动增加可以远程访问数据库的用户。
方法一、本地登入mysql,更改 "mysql" 数据库里的 "user" 表里的 "host" 项,将"localhost"改为"%"
方法二、直接授权(推荐 )
从任何主机上使用root用户,密码:youpassword(你的root密码)连接到mysql服务器:
# mysql -u root -proot
mysql>GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'youpassword' WITH GRANT OPTION;
重启Mysql服务后,这样就可用图形化数据库管理软件( Navicat MySQL 或者用更NB的SQLyog是个不错的选择)远程访问Mysql。
补充:
1.mysql数据库中user表中的host列是指定登录的ip,比如说 user=root host=192.168.1.1 ,这里的意思就是说,root用户只能通过 192.168.1.1的客户端去访问,而%则是个通配符, 如果host=192.168.1.%,那么就表示 只要是 ip为host=192.168.1.前缀的客户端都可以连接,那么host=%的话则表示所有ip都有权去连接,这也就是为什么在开启远程连接的时候,大部分人都直接把host改成%的缘故,因为省事。2.mysql 的grant命令:
grant 权限1,权限2,…权限n on 数据库名称.表名称 to 用户名@主机地址 identified by‘连接口令’;