Ubuntu下安装MySql并在外网连接

纯新手教程。


1.安装mysql

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;





### 如何在Ubuntu连接MySQL 为了成功连接MySQL数据库,在确保MySQL服务正常运行的情况下,可以使用多种方法来建立连接。 #### 使用命令行客户端连接MySQL 通过终端输入特定命令可以直接登录操作MySQL服务器。假设已经安装MySQL,则可以通过下面的方式进入MySQL交互界面: ```bash mysql -u root -p ``` 这条指令会提示输入root用户的密码,之后便能顺利进入到MySQL环境中[^2]。 对于非root用户来说,只需替换`-u root`部分为相应的用户名即可实现不同权限级别的访问控制。 #### 配置网络设置允许远程连接 如果遇到无法从其他机器连接的情况,可能是由于默认配置只限定了本机(localhost)才能发起请求。此时需编辑MySQL配置文件调整绑定地址参数让其接受来自任何IP的数据包: ```bash cd /etc/mysql/mysql.conf.d/ sudo nano mysqld.cnf ``` 找到`bind-address`这一项将其修改成`0.0.0.0`表示开放所有接口;或者指定某个具体的外网IP以便更精确地管理可接入范围。完成更改后记得保存退出再执行重启命令使改动生效: ```bash sudo systemctl restart mysql.service ``` 另外还需确认防火墙规则是否阻止了必要的通信端口,默认情况下MySQL使用的TCP端口号是3306[^4]。 #### 利用图形化工具如Navicat进行远程管理 当需要更加直观便捷的操作方式时可以选择第三方软件比如Navicat Premium Edition等产品来进行跨平台的数据库管理和开发工作。不过在此之前要先解决可能出现的一些常见问题,例如因未开启相应服务而导致“Connection refused”的报错现象。具体排查手段包括但不限于验证mysqld进程状态以及查看监听情况: ```bash sudo systemctl status mysql.service netstat -ln | grep mysql ``` 一旦发现异常则按照官方文档指导采取适当措施恢复正常使用[^3]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值