zoukankan      html  css  js  c++  java
  • linux开启mysql远程登录

    Mysql默认root用户只能本地访问,不能远程连接管理mysql数据库,Linux如何开启mysql远程连接?设置步骤如下:
    1、GRANT命令创建远程连接mysql授权用户itlogger
    mysql -u root -p
    mysql>GRANT ALL PRIVILEGES ON *.* TO mysql@localhost IDENTIFIED BY ‘mysql’ WITH GRANT OPTION;
    mysql>GRANT ALL PRIVILEGES ON *.* TO mysql@”%” IDENTIFIED BY ‘mysqlWITH GRANT OPTION;

    第一句增加mysql用户授权通过本地机(localhost)访问,密码“mysql”。第二句则是授与mysql用户从任何其它主机发起的访问(通配符%)。
    2、设置防火墙允许3306端口(或者选择关闭防火墙 chkconfig iptables off)
    vi /etc/sysconfig/IPtables
    添加-A RH-Firewall-1-INPUT -m state –state NEW -m tcp -p tcp –dport 3306 -j ACCEPT
    (注意添加在-A RH-Firewall-1-INPUT -j REJECT –reject-with icmp-host-prohibited之前,否则可能导致规则不生效)
    重启防火墙service iptables restart
    3、附:Mysql无法远程连接的常见问题

    1)查看Mysql的端口是否正确,通过netstat -ntlp查看端口占用情况,一般情况下端口是3306。

    2)报错:ERROR 2003 (HY000): Can’t connect to MySQL server on ’192.168.51.112′ (111)
    查看/etc/my.cnf中,skip-networking 是否已被注掉,需要注掉。
    3)报错:ERROR 2003 (HY000): Can’t connect to MySQL server on ’192.168.51.112′ (113)
    查看是否iptables没有允许mysql连接,通过:service iptables stop临时关闭测试是否可以正常远程访问,如果可以,按上面方面设置iptable允许3306端口
    4)远程访问mysql速度很慢的解决方法
    修改/etc/my.cnf或my.ini
    [mysqld]下添加
    skip-name-resolve
    skip-grant-tables

    **********************************************************************************************************************

    mysql数据库远程访问设置方法

    1、修改localhost
    更改 "mysql" 数据库里的 "user" 表里的 "host" 项,从"localhost"改成"%"
    mysql>use mysql;
    mysql>update user set host = '%' where user = 'root';
    mysql>select host, user from user;
    mysql>FLUSH PRIVILEGES;

    2、指定授权
    使用myuser/mypassword从任何主机连接到mysql服务器:
    GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'%' IDENTIFIED BY 'mypassword' WITH GRANT OPTION;

    使用myuser/mypassword从ip为192.168.225.166的主机连接到mysql服务器:
    GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'192.168.225.166' IDENTIFIED BY 'mypassword' WITH GRANT OPTION;

    3、泛授权
    mysql -h localhost -u root
    mysql>GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION; //赋予任何主机上以root身份访问数据的权限
    mysql>FLUSH PRIVILEGES;

    解决Mysql无法远程连接的问题

    1、Mysql的端口是否正确
    通过netstat -ntlp查看端口占用情况,一般情况下端口是3306。在用工具连接MySQl是要用到端口。例如My AdminMy Query BrowserMySQl Front等。

    2、检查用户权限是否正确
    mysql库的user表里有两条记录:host分别为localhost和%(为了安全,%可以换成你需要外部连接的IP)。

    3、查看/etc/mysql/my.cnf中,skip-networking 是否已被注掉
    需要注掉
    报错:ERROR 2003 (HY000): Can't connect to MySQL server on '192.168.51.112' (111)

    sudo gedit /etc/mysql/my.cnf
    #skip-external-locking

    #bind-address        = 127.0.0.1

    skip-name-resolve


    4、查看iptables是否停掉,没关的情况下,无法连接
    通过:service iptables stop临时关闭。
    报错:ERROR 2003 (HY000): Can't connect to MySQL server on '192.168.51.112' (113)

     设置好以后需要重启:sudo service mysql restart

  • 相关阅读:
    记Spring搭建功能完整的个人博客「Oyster」全过程[其二] Idea中Maven+SpringBoot多模块项目开发的设计和各种坑(模块间依赖和打包问题)
    记Spring搭建功能完整的个人博客「Oyster」全过程[其一] 整体思路:需求、架构及技术要求
    [总结-动态规划]经典DP状态设定和转移方程
    HDU-6217 BBP Formula 脑洞
    UVA-11426 GCD
    UVA-11806 Cheerleaders 计数问题 容斥定理
    CodeForces-546D Soldier and Number Game 筛法+动态规划
    CodeForces-148D Bag of mice 概率dp
    Gym-101615D Rainbow Roads 树的DFS序 差分数组
    AVL树 算法思想与代码实现
  • 原文地址:https://www.cnblogs.com/cugb-2013/p/3246452.html
Copyright © 2011-2022 走看看