日期:2014-05-16  浏览次数:20747 次

ubuntu 安装mysql和配置远程连接

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了。