开启mysql的远程连接的方法

开启mysql的远程连接的方法
web与mysql数据库分离开来是一个不错的选择,避免因为大量的数据库查询占用CPU而使web资源不足,同时可以使web 服务器的资源尽最大的提供浏览服务,而数据库服务器单独的只处理数据库事物。

适用范围:拥有独立主机权限。

硬件配置:两台服务器,至于具体服务器硬件配置就不在本文范围内了。

其中:A为web服务器(假设ip为:192.192.192.192)、B为mysql数据服务器(假设ip为:168.168.168.168)
着手动作:
1.在web服务器A配置好web服务。

假设web服务器的IP为:19
2.192.192.192
2.在数据库服务器B安装好mysql服务。

3.现在新版的mysql一般默认都不允许远程连接的。

需要建立远程连接账号才可以。

以命令行方式使用root账号进入mysql。

mysql -uroot -ppass
选择进入mysql数据库
use `mysql`;
查看所有存在的账号和地址。

SELECT `Host`,`User` FROM `user`;
比如我的就是:
+-----------+------+
| Host | User |
+-----------+------+
| localhost | |
| localhost | pma |
| localhost | root |
+-----------+------+
3 rows in set (0.00 sec)
也就是说,存在三个只允许本地连接的(localhost)账号,分别为root、pma、空用户。

现在决定让root具有上面那个web服务器A的远程链接的权限,
那么就这样。

UPDATE `user` SET `Host`='192.192.192.192' WHERE `User`='root' LIMIT 1;
这样192.192.192.192这台web服务器就可以远程连接到这个数据库服务器了。

假如你想让任何远程机器都可以连接这个数据库,就将192.192.192.192换为%。

不过不建议这样做!
假如你想新建一个用户new_user具备远程链接的权限的话,就这样
INSERT INTO `user` ( `Host` , `User` , `Password` , `Select_priv` , `Insert_priv` , `Update_priv` , `Delete_priv` , `Create_priv` , `Drop_priv` , `Reload_priv` , `Shutdown_priv` , `Process_priv` , `File_priv` , `Grant_priv` , `References_priv` , `Index_priv` , `Alter_priv` , `Show_db_priv` , `Super_priv` , `Create_tmp_table_priv` , `Lock_tables_priv` , `Execute_priv` , `Repl_slave_priv` , `Repl_client_priv` , `ssl_type` , `ssl_cipher` , `x509_issuer` , `x509_subject` , `max_questions` , `max_updates` , `max_connections` ) VALUES ('192.192.192.192', 'new_user',
PASSWORD( 'new_user_password' ) , 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', '', '', '', '', '0', '0', '0');
将new_user改为你想要的名字就可以了,密码是:new_user_password,当然你可以随意设置。

实际操作中,最好两台机器在同一个机房的同意网段/防火墙内。

当然如果有可能的话,将数据库服务器放置于web服务器网络内的局域网中就更好了。

合集下载

mysql remote用法

mysql remote用法

mysql remote用法MySQL的远程使用涉及到几个关键步骤,包括配置MySQL服务器以允许远程连接、修改客户端的连接设置以及确保网络通信是安全的。

以下是这些步骤的概述:1. 配置MySQL服务器以允许远程连接默认情况下,MySQL仅允许从localhost(本地主机)进行连接。

要允许远程连接,需要进行以下步骤:1. 修改``或``配置文件:找到`bind-address`参数并将其值改为``或注释掉这一行。

这会允许MySQL监听所有网络接口。

保存并关闭配置文件。

2. 重新启动MySQL服务:根据你的操作系统和MySQL安装方式,重新启动MySQL服务。

3. 创建远程用户或授权现有用户:登录到MySQL服务器。

使用`GRANT`命令为用户授权。

例如,要为`username`从任何主机授权`password`,执行:```sql`GRANT ALL PRIVILEGES ON database_name. TO'username''%' IDENTIFIED BY 'password';````刷新权限:```sql`FLUSH PRIVILEGES;````4. (可选)配置防火墙:如果你的服务器运行了防火墙,确保它允许来自客户端IP的MySQL 连接。

2. 修改客户端的连接设置1. 修改连接字符串:在连接到MySQL的代码中(例如,在Python、PHP、Java等中),使用服务器的IP地址或主机名代替localhost来连接。

2. (可选)配置防火墙:如果你的客户端机器运行了防火墙,确保它允许到MySQL服务器IP 的连接。

3. 确保网络通信是安全的1. 使用SSL加密:如果数据敏感或网络不安全,考虑配置SSL以加密MySQL连接。

这通常涉及到获取SSL证书、配置MySQL服务器以接受SSL连接以及在客户端代码中设置SSL选项。

2. 定期更新和打补丁:保持MySQL服务器和客户端库的最新版本,以确保安全漏洞得到修复。

mysql8设置允许远程连接Youarenotallowedtocreateauserwi。。。

mysql8设置允许远程连接Youarenotallowedtocreateauserwi。。。

mysql8设置允许远程连接Youarenotallowedtocreateauserwi。

1.登录mysql : mysql -u root -p2.输⼊密码: Enter password: xxxxx------ Server version: 8.0.15 MySQL Community Server - GPL3.进⼊mysql数据库:use mysql;4.设置允许远程⽤户访问:MySQL [mysql]> GRANT ALL ON *.* TO 'root'@'%'出现问题:ERROR 1410 (42000): You are not allowed to create a user with GRANT原因:当前user表中没有root - %记录;可以更新root - localhost 为 root - %MySQL [mysql]> update user set host = '%' where user = 'root';出现问题:ERROR 1062 (23000): Duplicate entry '%-root' for key 'PRIMARY'原因显⽰:host+user 应该是联合主键,冲突了5.解决⽅法:MySQL [mysql]> update user set host = '%' where user = 'root' and host='localhost';6.再次给⽤户root授权MySQL [mysql]> GRANT ALL ON *.* TO 'root'@'%'MySQL [mysql]> flush privileges;此时⽤navicat连接还是报错:Client does not support authentication protocol requested by server;原因是mysql8默认的加密⽅式为caching_sha2_password 与mysql5的加密⽅式mysql_native_password 不同7.解决⽅法-更新⽤户加密⽅式:MySQL [mysql]> ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '密码';查询⼀下修改结果:MySQL [mysql]> select host,user,plugin from user;其它:如果需要⽀持 root - localhost可以使⽤插⼊语句MySQL [mysql]> insert user (user, host, ssl_cipher, x509_issuer, x509_subject) values('root', 'localhost', '', '', '');再查看:(注意 ssl_cipher, x509_issuer, x509_subject这⼏个字段没有默认值,不设置会提⽰错误)。

MySQL8.0设置远程访问权限的方法

MySQL8.0设置远程访问权限的方法

MySQL8.0设置远程访问权限的⽅法上⼀篇⽂章讲解了重置 MySQL 的密码,有同学反馈⽆法程连接到数据库,这是因为 MySQL 安装完成后只⽀持 localhost 访问,我们必须设置⼀下才可以远程访问,另外还有⼀些 MySQL 8.0 连接时的⼀些问题,本⽂也会⼀并进⾏讲解如何解决。

1.登录MySQLmysql -u root -p输⼊您的密码2.选择 mysql 数据库use mysql;因为 mysql 数据库中存储了⽤户信息的 user 表。

3.在 mysql 数据库的 user 表中查看当前 root ⽤户的相关信息select host, user, authentication_string, plugin from user;执⾏完上⾯的命令后会显⽰⼀个表格查看表格中 root ⽤户的 host,默认应该显⽰的 localhost,只⽀持本地访问,不允许远程访问。

4.授权 root ⽤户的所有权限并设置远程访问GRANT ALL ON *.* TO 'root'@'%';GRANT ALL ON 表⽰所有权限,% 表⽰通配所有 host,可以访问远程。

5.刷新权限所有操作后,应执⾏flush privileges;6.查看 root ⽤户的 host再次执⾏步骤 2,你会发现 root ⽤户的 host 已经变成 %,说明我们的修改已经成功,可以远程访问了。

7.访问数据库远程访问数据库的可视化⼯具⽐较多如:Navicat、SQLyog、MySQL workbench 等,我这⾥使⽤ Navicat输⼊访问的 host 和密码,报 2059 错误,这是因为 MySql8.0 版本和 5.0 的加密规则不⼀样,⽽现在的可视化⼯具只⽀持旧的加密⽅式。

此问题有两种⽅法,⼀种是更新 Navicat 驱动来解决此问题,另⼀种是将 MySQL ⽤户登录的加密规则修改为mysql_native_password,第⼀种⽅法我试过了没有起作⽤,我这⾥采⽤第⼆种⽅法。

MySql远程连接设置(图文教程)

MySql远程连接设置(图文教程)

MySql远程连接设置(图文教程)MySql远程连接设置介绍:经常我们在安装完mysql之后,没有设置mysql远程连接的功能,有时侯我们需要在远程管理mysql服务器,就必须的远程连接mysql,所以我们就要用到如何启起mysql远程连接设置。

有多种方法,本文重点推荐第4种方法设置和开启mysql 远程连接功能--实现MySql远程连接设置多机授权或指定多ip或所有主机远程访问mysql1、先查看mysql是否启动ps -le |grep mysqld 查测一下mysql是否启动netstat -an |grep 3306 检测一下mysql 3306端口是否为监听状态。

/usr/local/mysql/bin/mysqladmin version 查看mysql的版本2、用root用户登陆mysql/usr/local/mysql/bin/mysql -u root -p 登陆mysql[root@WebSrv extra]# /usr/local/mysql/bin/mysql -u root -pEnter password:Welcome to the MySQL monitor. Commands end with ; or \g.Your MySQL connection id is 4Server version: 5.0.41-log Source distributionType 'help;' or '\h' for help. Type '\c' to clear the buffer.mysql>3、实现MySql远程连接设置单机授机,或指定某个ip,或某个主机远程访问mysql 格式:grant 权限on 数据库名.表名to 用户@登录主机identified by "用户密码";grant select,update,insert,delete on *.* to root@192.168.1.3 identified by "hncctv";原先数据表结构mysql> use mysql;Database changedMysql>grant select,update,insert,delete on *.* to root@192.168.1.3 identified by "hncctv";mysql> select host,user,password from user;+-----------+------+-------------------------------------------+| host | user | password |+-----------+------+-------------------------------------------+| localhost | root | *81F5E21E35407D884A6CD4A731AEBFB6AF209E1B |+-----------+------+-------------------------------------------+执行上述语句后结果mysql> use mysql;Database changedmysql> select host,user,password from user;+--------------+------+-------------------------------------------+ | host | user | password | +--------------+------+-------------------------------------------+ | localhost | root | *81F5E21E35407D884A6CD4A731AEBFB6AF209E1B | | 192.168.1.3 | root | *81F5E21E35407D884A6CD4A731AEBFB6AF209E1B |+--------------+------+-------------------------------------------+ 2 rows in set (0.00 sec)可以看到在user表中已有刚才创建的root用户。

Mysql开启远程连接方法

Mysql开启远程连接方法

Mysql开启远程连接⽅法分类:数据库开发技术解决MySQL不允许从远程访问的⽅法开启 MySQL 的远程登陆帐号有两⼤步:1、确定服务器上的防⽕墙没有阻⽌ 3306 端⼝。

MySQL 默认的端⼝是 3306 ,需要确定防⽕墙没有阻⽌ 3306 端⼝,否则远程是⽆法通过 3306 端⼝连接到 MySQL 的。

如果您在安装 MySQL 时指定了其他端⼝,请在防⽕墙中开启您指定的 MySQL 使⽤的端⼝号。

如果不知道怎样设置您的服务器上的防⽕墙,请向您的服务器管理员咨询。

2、增加允许远程连接 MySQL ⽤户并授权。

1)⾸先以 root 帐户登陆 MySQL在 Windows 主机中点击开始菜单,运⾏,输⼊“cmd”,进⼊控制台,MySQL 的 bin ⽬录下,然后输⼊下⾯的命令。

在 Linux 主机中在命令提⽰⾏下输⼊下⾯的命令。

CODE:> MySQL -uroot -p123456123456 为 root ⽤户的密码。

2)创建远程登陆⽤户并授权CODE:> grant all PRIVILEGES on discuz.* to ted@'123.123.123.123' identified by '123456';上⾯的语句表⽰将 discuz 数据库的所有权限授权给 ted 这个⽤户,允许 ted ⽤户在 123.123.123.123 这个 IP 进⾏远程登陆,并设置 ted ⽤户的密码为 123456 。

下⾯逐⼀分析所有的参数:all PRIVILEGES 表⽰赋予所有的权限给指定⽤户,这⾥也可以替换为赋予某⼀具体的权限,例如:select,insert,update,delete,create,drop 等,具体权限间⽤“,”半⾓逗号分隔。

discuz.* 表⽰上⾯的权限是针对于哪个表的,discuz 指的是数据库,后⾯的 * 表⽰对于所有的表,由此可以推理出:对于全部数据库的全部表授权为“*.*”,对于某⼀数据库的全部表授权为“数据库名.*”,对于某⼀数据库的某⼀表授权为“数据库名.表名”。

MySQL远程连接(federated存储引擎)

MySQL远程连接(federated存储引擎)

MySQL远程连接(federated存储引擎)标签:federated存储引擎概述本⽂主要介绍通过federated存储引擎建⽴远程连接表测试环境:mysql 5.6.21步骤开启federated存储引擎先查看federated存储引擎存储引擎是否启⽤SHOW ENGINES ;默认mysql是没有开启federated存储引擎,我这⾥因为已经配置了。

开启federated存储引擎只需要在f⽂件中增加‘federated’就可以。

创建远程连接表mysql配置远程连接必须在本地创建federated存储引擎的表,配置远程连接参数,本地创建的表必须和远程表的定义保持⼀致,这⾥我就拿本地另⼀个案例数据库来做测试,效果和远程是⼀样。

show create table sakila.actor;创建远程存储引擎表CREATE TABLE FEDERATED_actor (`actor_id` smallint(5) unsigned NOT NULL AUTO_INCREMENT,`first_name` varchar(45) NOT NULL,`last_name` varchar(45) NOT NULL,`last_update` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,PRIMARY KEY (`actor_id`),KEY `idx_actor_last_name` (`last_name`)) ENGINE =FEDERATED CONNECTION='mysql://root:123456@127.0.0.1:3306/sakila/actor';注意:本地创建的表名必须在远程服务器存在,创建的字段也必须是远程表中的字段,可以⽐远程表的字段少,但是不能多,本地存储引擎选择:ENGINE =FEDERATED,CONNECTION选项中的连接字符串的⼀般形式如下:scheme://user_name[:password]@host_name[:port_num]/db_name/tbl_name还有⼀些连接字符串的例⼦:CONNECTION='mysql://username:password@hostname:port/database/tablename'CONNECTION='mysql://username@hostname/database/tablename'CONNECTION='mysql://username:password@hostname/database/tablename'注意:配置密码作为纯⽂本的话会存在安全问题,运⾏show create table,show table status是可以见的SELECT*FROM test.federated_actor;更新本地表USE test;update federated_actorset last_name='GUINESS1'where actor_id=1;SELECT*FROM test.federated_actor;SELECT*FROM sakila.actor;对本地进⾏更新操作,本地和远程的数据都被更改了。

mysql 开启远程连接的三种方法

方法一样给mysql开启远程连接功能?首先链接本机的mysql(用ssh登录终端,输入如下命令):mysql -uroot -p输入密码登陆进去后,输入如下的语句,执行。

grant all privileges on *.* to ‘user‘@’%‘identified by ‘password‘with grant option; 其中,user是用户名,mysql默认的是root ,password是密码自己设置。

%表示任意主机。

这样就允许远程任意一台主机访问了。

方法二开启mysql远程功能方法如下:进入mysql,创建一个新用户itbc:格式:grant 权限on 数据库教程名.表名用户@登录主机identified by "用户密码";grant select,update,insert,delete on *.* to itbc@192.168.88.234 identified by "itbc1234";查看结果,执行:use mysql;select host,user,password from user;可以看到在user表中已有刚才创建的itbc用户。

host字段表示登录的主机,其值可以用ip,也可用主机名,将host字段的值改为%就表示在任何客户端机器上能以itbc用户登录到mysql服务器,建议在开发时设为%。

update user set host = ’%’where user = ’itbc’;方法三mysql默认是不可以通过远程机器访问的,通过下面的配置可以开启远程访问.我的mysql环境是ubuntu+mysql51.修改/etc/mysql/my.conf,修改bind-address,指定为本机实际ip地址,你的my.con修改完大概是如下的样子[mysqld]## * basic settings#default-character-set=utf8default-storage-engine=innodbbind-address = 192.168.1.107user = mysqlpid-file = /var/run/mysqld/mysqld.pidsocket = /var/run/mysqld/mysqld.sockport = 3306basedir = /usrdatadir = /var/lib/mysqltmpdir = /tmplanguage = /usr/share/mysql/englishskip-external-locking2.用root登陆mysql执行如下命令grant all on sonardb.* to sonar@'%' identified by '123456';grant all on sonardb.* to sonar@localhost identified by '123456';sonardb替换为你想访问的数据库名,sonar是你的想使用的用户名,123456替换为你的密码,这样就开启了远程访问功能.。

mysql远程访问权限的配置方法

mysql远程访问权限的配置方法MySQL是一款广泛使用的关系型数据库管理系统,它具有强大的功能和灵活的配置选项。

在实际应用中,有时需要从远程位置访问MySQL数据库,这涉及到配置MySQL的远程访问权限。

为了确保数据的安全性,MySQL默认情况下禁止远程访问。

本文将一步一步介绍如何配置MySQL 的远程访问权限。

1. 确保MySQL服务器监听远程连接:默认情况下,MySQL服务器只监听本地连接。

要允许远程连接,首先需要确保MySQL服务器在所有网络接口上都监听连接。

打开MySQL配置文件myf(或my.ini),找到bind-address选项,并将其设置为服务器的IP地址或0.0.0.0以监听所有接口。

2. 添加远程连接用户:MySQL服务器通过用户名和密码验证远程连接。

要创建一个可以从远程访问的用户,请使用以下命令登录到MySQL服务器上的命令行工具:mysql -u root -p在命令行工具中,创建一个新用户并授予其远程访问权限:CREATE USER 'username''' IDENTIFIED BY 'password';GRANT ALL PRIVILEGES ON *.* TO 'username''' WITH GRANT OPTION;FLUSH PRIVILEGES;其中,'username'是新用户的用户名,'password'是密码。

表示允许来自任何IP地址的远程连接。

如果只允许特定IP地址的远程连接,可以将替换为具体的IP地址。

3. 配置防火墙:如果服务器上启用了防火墙,还需要配置防火墙以允许MySQL的远程连接。

如果使用的是iptables,请使用以下命令允许MySQL流量通过:iptables -A INPUT -p tcp dport 3306 -j ACCEPT如果使用的是ufw,请使用以下命令允许MySQL流量通过:ufw allow 3306/tcp4. 重启MySQL服务:在完成上述配置后,需要重启MySQL服务以使更改生效。

学习如何开启MySQL远程登陆帐号

学习如何开启MySQL远程登陆帐号
下面小编给大家分享的是学习如何开启MySQL远程登陆帐号,在这里详细的介绍了学习如何开启MySQL远程登陆帐号,希望对大家有所帮助. 只要你按照以下两个步骤操作,就可以轻松开启MySQL的远程登陆帐号,快来试试吧!
1、确定服务器上的防火墙没有阻止3306 端口。

MySQL默认的端口是3306 ,需要确定防火墙没有阻止3306端口,否则远程是无法通过3306 端口连接到MySQL 的。

如果您在安装MySQL 时指定了其他端口,请在防火墙中开启您指定的MySQL 使用的端口号。

如果不知道怎样设置您的服务器上的防火墙,请向您的服务器管理员咨询。

2、增加允许远程连接MySQL 用户并授权。

1)首先以root 帐户登陆MySQL
在Linux 主机中在命令提示行下输入下面的命令。

>; MySQL -uroot -p123456
CODE: [COPY]
>; MySQL -uroot -p123456
123456 为root 用户的密码。

在Windows 主机中点击开始菜单,运行,输入“cmd”,进入控制台,MySQL 的bin 目录下,然后输入下面的命令。

2)创建远程登陆用户并授权
>; grant all PRIVILEGES on discuz.* toted@'123.123.123.123'identified by '123456';
上面的语句表示将discuz 数据库的所有权限授权给ted 这个用户,。

docker中安装的mysql无法远程连接问题解决

docker中安装的mysql⽆法远程连接问题解决
背景:
在ubuntu1804的docker中安装了mysql,版本是5.7.34。

因为有复杂的数据要插⼊到数据库中,所以从宿主机通过pycharm和DBeaver连接,但是⼀直报错:Can not read response from server. Expected to read 4 bytes, read 0 bytes before connection was unexpectedly lost.
解决⽅法分为两步⾛
第⼀步:
修改mysql配置⽂件中的bind_address
vim /etc/mysql/mysql.conf.d/f
数据库不能远程访问多半是因为绑定了本地地址127.0.0.1.
第⼆步:
开启⽤户的远程访问权限。

以root⽤户为例。

如果⽤户没有远程访问权限则即使数据库能远程访问但因为⽤户权限限制也会失败。

开启远程访问权限:
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'password';
强制刷新权限:
flush privileges;
完成这两步就可以远程访问到docker中的数据库了。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
相关文档
最新文档