ubuntu 安装mysql和配置远程连接
?
1.安装MySQL
sudo apt-get install mysql-server
如果要卸载以前的mysql版本
sudo apt-get autoremove --purge mysql-server-5.0 sudo apt-get remove mysql-server sudo apt-get autoremove mysql-server sudo apt-get remove mysql-common (非常重要)
?
2.配置MySQL
在Ubuntu下MySQL缺省是只允许本地访问的,如果你要其他机器也能够访问的话,那么需要改变/etc/mysql/my.cnf配置文件了:
默认的MySQL安装之后根用户是没有密码的,所以首先用根用户进入:
$mysql -u root
?(在这里之所以用-u root是因为我现在是一般用户(firehare),如果不加-u root的话,mysql会以为是firehare在登录。注意,我在这里没有进入根用户模式,因为没必要。一般来说,对mysql中的数据库进行操作, 根本没必要进入根用户模式,只有在设置时才有这种可能。)
3.修改root密码
a:进入mysql后修改
mysql> GRANT ALL PRIVILEGES ON *.* TO root@localhost IDENTIFIED BY "123456";
b:未进入mysql前修改
$sudo mysqladmin -u root password newpassword
?
修改密码后登录命令
$mysql -u root -pnewpassword
?
注意有密码登录的p参数后直接跟密码,不要空格
4.用root用户建立你所需要的数据库
?
mysql>CREATE DATABASE xoops; mysql>GRANT ALL PRIVILEGES ON xoops.* TO xoops_root@localhost IDENTIFIED BY "654321";
?
?
这样就建立了一个xoops_roots的用户,它对数据库xoops有着全部权限。以后就用xoops_root来对xoops数据库进行管理,而无需要再用root用户了,而该用户的权限也只被限定在xoops数据库中。
5.如果你想进行远程访问或控制,那么你要做两件事:
其一:
mysql>GRANT ALL PRIVILEGES ON xoops.* TO xoops_root@"%" IDENTIFIED BY "654321";
允许xoops_root用户可以从任意机器上登入MySQL。
其二:
$sudo gedit /etc/mysql/my.cnf
老的版本中
>skip-networking => # skip-networking
新的版本中
>bind-address=127.0.0.1 => bind-address= 你机器的IP
此时如果远程客户端连接时可能出现 1062 的连接错误,解决如下:
mysql -u root -p mysql>use mysql; mysql>select 'host' from user where user='root'; mysql>update user set host = '%' where user ='root'; mysql>flush privileges; mysql>select 'host' from user where user='root';
第一句是以权限用户root登录
第二句:选择mysql库
第三句:查看mysql库中的user表的host值(即可进行连接访问的主机/IP名称)
第四句:修改host值(以通配符%的内容增加主机/IP地址),当然也可以直接增加IP地址
第五句:刷新MySQL的系统权限相关表
第六句:再重新查看user表时,有修改。。
重起mysql服务即可完成。
重启mysql服务方法:
$sudo /etc/init.d/mysql restart
?
这样就可以允许其他机器访问MySQL了。