mysql 创建账户给外网访问的权限

设置mysql服务允许外网访问,修改mysql的配置文件,有的是my.ini,有的是my.cnf【linux】.

1:设置mysql的配置文件
     /etc/mysql/my.cnf
     找到 bind-address  =127.0.0.1  将其注释掉;//作用是使得不再只允许本地访问;
 
  重启mysql:/etc/init.d/mysql restart;
 

2:登录mysql数据库:mysql -u root -p
  mysql> use mysql;
 
  查询host值:
mysql> select user,host from user;
 
如果没有"%"这个host值,就执行下面这两句:
mysql> update user set host='%' where user='root';
mysql> flush privileges;
或者也可以执行:
mysql>grand all privileges on  *.*  to root@'%'  identifies  by ' xxxx';
其中 第一个*表示数据库名;第二个*表示该数据库的表名;如果像上面那样 *.*的话表示所有到数据库下到所有表都允许访问;
‘%':表示允许访问到mysql的ip地址;当然你也可以配置为具体到ip名称;%表示所有ip均可以访问;
 后面到‘xxxx'为root 用户的password;
 

举例:

任意主机以用户root和密码mypwd连接到mysql服务器
mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'mypwd' WITH GRANT OPTION;
mysql> flush privileges;

IP为192.168.1.102的主机以用户myuser和密码mypwd连接到mysql服务器
mysql> GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'192.168.1.102' IDENTIFIED BY 'mypwd' WITH GRANT OPTION;
mysql> flush privileges;

转载于:https://my.oschina.net/u/588516/blog/678154

### CentOS 7 上安装 MySQL 并配置远程访问 #### 安装 MySQL 为了在 CentOS 7 上安装 MySQL 数据库服务器,需要先更新系统的软件包并安装必要的依赖项[^1]。 ```bash sudo yum update -y sudo yum install epel-release -y ``` 接着,添加 MySQL 的官方 Yum 存储库: 对于 MySQL 5.7 版本: ```bash sudo rpm -Uvh https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm ``` 安装完成后,可以通过下面的命令来安装 MySQL 社区版服务端程序: ```bash sudo yum install mysql-community-server -y ``` 启动 MySQL 服务并将它设置为开机自动运行: ```bash sudo systemctl start mysqld.service sudo systemctl enable mysqld.service ``` 初次启动后会生成一个临时密码用于 root 用户登录数据库。这个随机密码保存于 `/var/log/mysqld.log` 文件中,可通过 grep 命令获取该初始密码: ```bash grep 'temporary password' /var/log/mysqld.log ``` 使用此默认密码首次连接到 MySQL 后应立即更改 root 密码,并完成其他安全设置向导中的选项: ```bash mysql_secure_installation ``` #### 配置远程访问 为了让 MySQL 接受来自外部 IP 地址的请求,默认情况下只监听本地地址 `127.0.0.1` 是不够的。修改 MySQL 主配置文件 `/etc/my.cnf.d/server.cnf` 或者 `/etc/my.cnf` 中 `[mysqld]` 下面的部分,找到 bind-address 参数将其更改为服务器的实际公网IP或者设为空白表示接受任何来源的连接请求: ```ini bind-address = 0.0.0.0 ``` 重启 MySQL 使新的绑定地址生效: ```bash sudo systemctl restart mysqld.service ``` 另外,在防火墙层面也需要开放相应的端口(通常是3306),以便让外界能够通过网络到达 MySQL 端口。如果启用了 firewalld,则执行以下操作打开所需端口: ```bash sudo firewall-cmd --add-service=mysql --permanent sudo firewall-cmd --reload ``` 最后一步是在 MySQL 内部授予特定用户的远程访问权限。假设要给名为 myuser 的用户赋予从任意主机(`%`)上的完全控制权,可按如下方式创建账户或调整现有账户权限: ```sql CREATE USER 'myuser'@'%' IDENTIFIED BY 'mypassword'; GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'%' WITH GRANT OPTION; FLUSH PRIVILEGES; ``` 以上步骤完成后,MySQL 就已经成功设置了远程访问功能。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值