服务器安装MySQL并远程访问

服务器安装MySql并远程访问

1. 安装Mysql

安装环境: CentOS7.5   MySQL5.7
  • 安装步骤

    1. 在 /usr/local/src 文件夹下使用命令从官网下载rpm包

      wget \
      https://cdn.mysql.com/archives/mysql-5.7/mysql-community-client-5.7.32-1.el7.x86_64.rpm \
      https://cdn.mysql.com/archives/mysql-5.7/mysql-community-common-5.7.32-1.el7.x86_64.rpm \
      https://cdn.mysql.com/archives/mysql-5.7/mysql-community-libs-5.7.32-1.el7.x86_64.rpm \
      https://cdn.mysql.com/archives/mysql-5.7/mysql-community-libs-compat-5.7.32-1.el7.x86_64.rpm \
      https://cdn.mysql.com/archives/mysql-5.7/mysql-community-server-5.7.32-1.el7.x86_64.rpm
      
    2. 安装下载的安装包

      //命令
      yum install -y mysql-community-*-5.7.32-1.el7.x86_64.rpm
      
    3. 开启服务器查看默认密码

      # 开启MySQL服务器
      systemctl start mysqld
      # 查看默认生成的密码
      cat /var/log/mysqld.log | grep password
      

      生成的密码

    4. 使用以上密码登录Mysql

      mysql -u root -p
      
      mysql登录完整格式: 
      mysql -u user -h IPaddress -p
      
    5. 设置mysql远程登陆

      use `mysql`;
      # 注意将密码替换掉
      GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '您的密码' WITH GRANT OPTION;
      #刷新
      FLUSH PRIVILEGES;
      

    在这里插入图片描述

    以上 % 表明设置成功,默认情况是只允许本地localhost登陆的

2. 踩坑记录

2.1 设置远程登录以后,仍然无法访问!

错误信息:
    2003 - cant connect ro mysql server on xxx (10060 unknown error)
  • 解决思路
    1. 检查端口3306状态
      //远程连接测试
      telnet 目的IP地址 3306
      
      如果3306不同但是其他例如22端口正常,则说明本机网络设置没有问题
      
      • 问题:windows终端提示telnet命令无效!

        • 解决方案:控制面板 >>>> 程序 >>>>> 启用或关闭windows功能 >>>>> 勾选Telnet客户端选项即可开启
      • 检查端口(我的问题就出在这里)

        1)netstat -ntpl |grep 3306
            tcp        0      0 :::3306                     :::*                        LISTEN      - 
        2)netstat -ntpl |grep 22
            tcp        0      0 0.0.0.0:22                  0.0.0.0:*                   LISTEN      -   
          可以看出22端口监听所有地址,而3306只监听本机地址(绑定了到了本地),所以远程无法访问。
          对于端口只允许本机访问,有两个地方启用,一个是防火墙启用3306,一个就是mysql配置绑定本机地址。
        
    2. 检查防火墙

      //查看防火墙状态
      firewall-cmd --state
      //如果是防火墙的问题,则打开防火墙端口3306
      firewall-cmd --zone=public --add-port=3306/tcp --permanent    
      
      firewall-cmd --reload		#重启firewall
      firewall-cmd --list-ports	#查看已经开放的端口
      
    3. mysql配置文件检测

      检查my.cnf的配置,bind-address=addr可以配置绑定ip地址。
      不配置或者IP配置为0.0.0.0,表示监听所有客户端连接。
      #ps -aux | grep mysql  查看进程ID是3340
      #ll /proc/3340 查看进程程序情况,找配置文件或者#which mysql 找程序路径
      
    4. 检查ECS服务器安全组配置规则(我的问题所在,如果项目端口打不开也可以使用该方法)

    在这里插入图片描述

3. Mysql一些配置问题

3.1 查找my.cnf文件

mysql --help | grep my.cnf       //看my.cnf配置位置的读取顺序
    
find / -name my.conf 

3.2 数据库数据乱码问题

  1. 进入mysql

    //执行编码显示
    show variables like 'character%'
        
    
    输出如下
    mysql> show variables like 'character%';
    +--------------------------+----------------------------+
    | Variable_name            | Value                      |
    +--------------------------+----------------------------+
    | character_set_client     | utf8                       |
    | character_set_connection | utf8                       |
    | character_set_database   | utf8  (默认为latin1,将其修改为utf-8|
    | character_set_filesystem | binary                     |
    | character_set_results    | utf8                       |
    | character_set_server     | utf8   (默认为latin1,将其修改为utf-8|
    | character_set_system     | utf8                       |
    | character_sets_dir       | /usr/share/mysql/charsets/ |
    +--------------------------+----------------------------+
    
    
  2. 修改方法

    • 方法一:对本次进行修改,重启后失效(不推荐)

      首先进入mysql,然后在mysql下执行如下语句:
      
      SET character_set_database = utf8;
      SET character_set_server = utf8;
      
    • 方法二:改my.cnf文件

      [client]
      default-character-set=utf8 //添加该语句
          
      [mysqld]
      character_set_server=utf8 //也可以按上面方式写,但有可能导致mysql无法启动;我的只能这样写
          
      再重启mysql
      systemctl restart mysqld.service
      

f8 //添加该语句

 [mysqld]
 character_set_server=utf8 //也可以按上面方式写,但有可能导致mysql无法启动;我的只能这样写
     
 再重启mysql
 systemctl restart mysqld.service
 ```
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值