Ubuntu下安装MySql并在外网连接,ubuntumysql在外网
纯新手教程。
apt-get install mysql-server mysql-client libmysqlclient15-dev
安装过程中会提示为数据库root账户设置密码,输入两边密码即可
2、进入
mysql mysql -uroot -p
3、重新设置mysql用户root的密码
GRANT ALL PRIVILEGES ON *.* TO root@localhost IDENTIFIED BY "123456";
4、创建新数据库 proxy
create database proxy;
5、创建用户test 对proxy库有全部操作权限
grant all privileges on proxy.* to test@localhost identified by "testpwd";
6、允许test用户可以从任意机器上登入MySQL
grant all privileges on proxy.* to test@"%" identified by "testpwd";
7、退出mysql
exit
8、mysql安装完成后默认监听的地址是127.0.0.1,端口是3306。可以通过以下命令看到其监听的地址以及端口:
netstat -ntulp
9、如果监听的是127.0.0.1,那么从外网是连不上数据库的。这时可以修改监听的地址为0.0.0.0:
sudo vim /etc/mysql/my.cnf
找到bind-address=127.0.0.1这一行,将127.0.0.1改为0.0.0.0,保存退出
10、重启mysql,使配置生效
service mysql restart
现在应该就可以在远程用MySql_Front或者phpmyadmin远程连接mysql数据库了。只不过只能用刚授权过的test账户远程登录。root账户默认是禁止远程登录数据库的。可以用以下两种办法来允许root账户远程登录数据库:
(1). 改表法。
可能是你的帐号不允许从远程登陆,只能在localhost。这个时候只要在localhost的那台电脑,登入mysql后,更改 "mysql" 数据库里的 "user" 表里的 "host" 项,从"localhost"改称"%"
<pre name="code" class="sql">mysql -u root -p mysql>use mysql; mysql>update user set host = '%' where user = 'root'; mysql>select host, user from user;
(2).授权法。
例如,你想myuser使用mypassword从任何主机连接到mysql服务器的话:
GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'%' IDENTIFIED BY 'mypassword' WITH GRANT OPTION;
如果你想允许用户myuser从ip为192.168.1.3的主机连接到mysql服务器,并使用mypassword作为密码
GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'192.168.1.3' IDENTIFIED BY 'mypassword' WITH GRANT OPTION;
如果考虑到安全性的问题,又想禁止root账户远程登录mysql数据库:
delete from user where user = 'root' and host = '%'; select host, user from user; flush privileges;
不是命令行 直接mysql -uroot -p123456?
root是用户名 p是密码~~
安装MySQL
sudo apt-get install mysql-server
这个应该很简单了,而且我觉得大家在安装方面也没什么太大问题,所以也就不多说了,下面我们来讲讲配置。
配置MySQL
注意,在Ubuntu下MySQL缺省是只允许本地访问的,如果你要其他机器也能够访问的话,那么需要改变/etc/mysql/my.cnf配置文件了!下面我们一步步地来:
默认的MySQL安装之后根用户是没有密码的,所以首先用根用户进入:
$mysql -u root
在这里之所以用-u root是因为我现在是一般用户(firehare),如果不加-u root的话,mysql会以为是firehare在登录。注意,我在这里没有进入根用户模式,因为没必要。一般来说,对mysql中的数据库进行操作,根本没必要进入根用户模式,只有在设置时才有这种可能。
进入mysql之后,最要紧的就是要设置Mysql中的root用户密码了,否则,Mysql服务无安全可言了。
mysql> GRANT ALL PRIVILEGES ON *.* TO root@localhost IDENTIFIED BY "123456";
注意,我这儿用的是123456做为root用户的密码,但是该密码是不安全的,请大家最好使用大小写字母与数字混合的密码,且不少于8位。
这样的话,就设置好了MySQL中的root用户密码了,然后就用root用户建立你所需要的数据库。我这里就以xoops为例:
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数据库中。
如果你想进行远程访问或控制,那么你要做两件事:
其一:
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
这样就可以允许其他机器访问MySQL了。
参考资料:ubuntu 中文官网论坛...余下全文>>