linuxmysql外部访问
假设本地计算机IP为192.168.1.100,远程计算机IP为192.168.1.244。为了允许从本地计算机访问远程计算机上的MySQL数据库,首先在远程计算机上执行以下步骤:
1. 启动MySQL服务器:/etc/init.d/mysql.server start。
2. 登录MySQL服务器:bin/mysql -u root -p。
3. 切换到mysql数据库:mysql> use mysql。
4. 创建远程登陆用户并授权:mysql> grant all PRIVILEGES on test.* to andy@'192.168.1.100' identified by '123456';。
这条语句表示授予andy用户对test数据库中所有表的所有权限,并允许andy用户通过IP地址192.168.1.100远程连接,同时设置了andy用户的密码为123456。参数解析如下:
- all PRIVILEGES:表示授予所有权限,也可以指定具体权限,如select, insert, update, delete, create, drop等,各权限间用逗号分隔。
- test.*:表示授权范围,test为数据库名,*表示所有表,可以进一步细化,例如:*.*表示所有数据库的所有表,数据库名.*表示指定数据库的所有表,数据库名.表名表示指定数据库的指定表。
- andy:表示要授权的用户,可以是已存在的用户或新创建的用户。
- 192.168.1.100:表示允许远程连接的IP地址,如需不限制连接IP则设置为%。
- 123456:为用户的密码。
执行完上述语句后,需执行> flush privileges;以使更改立即生效。
接下来在本地计算机上执行以下命令:
3. 连接到远程MySQL服务器:./mysql -h 192.168.1.244 -u andy -p 123456。
至此,你便可以使用本地计算机访问远程计算机上的MySQL数据库了。
② linux系统中如何设置mysql外部登录访问
在Linux系统中设置MySQL以支持外部登录访问,需要通过几个关键步骤操作。以下是详细过程:
首先,找到并编辑MySQL的配置文件,通常位于/etc/mysql/、/etc/my.cnf或/etc/mysql/mysql.conf.d/mysqld.cnf,使用`sudo find / -name my.cnf`查找。在[mysqld]部分,将bind-address设置为0.0.0.0或服务器IP地址,以允许外部连接。保存后,重启MySQL服务,如`sudo systemctl restart mysql`或`sudo service mysql restart`。
接下来,创建或更新用户权限,例如创建用户remoteuser并授予权限,如`CREATE USER 'remoteuser'@'%' IDENTIFIED BY 'password'; GRANT ALL PRIVILEGES ON *.* TO 'remoteuser'@'%' WITH GRANT OPTION; FLUSH PRIVILEGES;`。为了增加安全性,建议使用具体IP地址代替%。同时,确保防火墙允许3306端口的外部访问,如使用`sudo ufw allow 3306/tcp`。
还需注意,允许外部访问可能会增加安全风险,务必采取措施,如使用强密码和限制连接源。如果使用SELinux,可能需要调整策略以支持外部连接。同时,检查服务器网络配置,确保外部流量可以到达MySQL端口。
配置完成后,务必在实际连接前进行测试,以确保所有更改按预期工作。现在,你已经具备了在Linux系统中设置MySQL以接受外部登录访问的基础知识。
③ linux 一台服务器,访问另外一台服务器上的 mysql 数据库怎么设置。
首先在数据库服务器上设置mysql可以远程访问,其次打开数据库服务器所在的linux系统上的防火墙策略添加3306端口,最后配置网络环境让2台机器可以进行通信。
其它java工程配置数据库的ip和用户名密码即可。
④ linux系统 #1045 无法登录 MySQL 服务器
在Linux系统中尝试连接MySQL数据库时,如果遇到1045错误,通常表示数据库拒绝了用户的访问。为了修正这个问题,需要确保数据库用户具有相应的访问权限。
首先,你需要登录到MySQL数据库中,使用命令:
mysql -uroot -padmin
输入用户名和密码登录。然后,你需要在MySQL中切换到数据库,执行以下命令:
use mysql;
select host,user from user;
这将显示所有已存在的用户及其主机名。如果你需要远程访问MySQL服务器,必须为普通用户增加相应的权限。使用以下命令:
grant select,update,insert,delete on mas.* to root@localhost identified by "admin";
这句命令新建了一个名为root的用户,并赋予该用户在本地(localhost)登录的权限,密码为admin,同时赋予其对名为mas的数据库中所有表的select,update,insert和delete操作权限。
确保root用户能够远程登录MySQL服务器,需要执行以下更新用户权限的命令:
update user set host = '%' where user = 'root';
也可以直接给用户授权,命令如下:
grant all on *.* to 用户名@"%" identified by "密码";
flush privileges;
这将为指定用户赋予所有权限,并刷新权限设置,确保新的权限配置生效。