mysql远程连接以及错误解决&命令行基本操作

时间:2022-12-29 04:46:01

现在大家的程序服务基本都是部署在云服务器上,今天我分享记录一下:使用mysql数据库过程中比较常见操作和遇到的问题

环境:lunix 系统(阿里云服务器,华为云服务器,腾讯云等均适用) + mysql5.7
  • mysql 命令行基本操作
    1. mysql> create database 数据库名称;  # 创建数据库
    2. mysql> show databases; # 展示所有的数据库
    3. mysql> use 库名称; # 选择一个数据库
    4. mysql> show tables; # 展示所有的表
    5. mysql> CREATE DATABASE course_data CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; # 创建数据库并指定字符集
    6. mysql> drop database 数据库名称; # 删除数据库
    7. mysql> show variables like '%char%'; # 查看数据库字符集 及其信息
    8. mysql> alter database 数据库名称 character set utf8mb4; # 设置数据库字符集
    9. mysql> source sql文件的路径 # 执行sql文件
    10.mysql> rename table 原来的表名称 to 改后的表名称; # 修改表的名称
    11.mysql> desc tabl_name; # 显示表结构
    12.mysql> alter table t1 charset=utf8mb4; #修改编码格式
    13.mysql> show create table 名称; # 查看表的结构
    14.mysql> exit; # 退出
    15.mysql> flush privileges; # 刷新权限 给用户赋予权限后必须执行这个命令
  • mysql安装完毕后我们要远程连接要怎么操作呢?
    1. mysql> create user '用户名'@'ip' identified by '密码'; # 创建用户
    2. mysql> grant all on *.* to '用户名'@'ip'; # 赋予权限
    # *.* 代表所有库表权限

    注:ip是你那个主机要连接这个mysql服务的就写这个主机ip

    也可以直接写localhost下一步使用sql改也没问题

    修改的sql:

    update user set host="ip" where user="你刚创建的用户名"

    以上所有提到的ip都可以使用 % 代替,表示所有的ip允许访问

  • 远程连接不成功(遇到的问题)
    1.然后在Windows环境下通过Navicat来连接时,出现报错:1045 Access denied for user '用户名'@'XXX' (using password: YES)
    解决方法:查看mysql库中的user表的host字段
    (1)use mysql;
    (2)select user,host from user;
    # 看一下你连接的用户名对应的host字段是不是你window是的ip,或者 %,如果不是,必须修改。
    (3)修改:update user set host="%"(你需要的ip) where user="用户名"
    (4)不要忘记执行:flush privileges; # 不然还需要重启mysql
    2. 主机对外的端口没有开启
    mysql:ERROR 2003 (HY000) 110(连接超时)
    解决方法:云服务器需要在管理后台配置安全组策略开放数据库对应的端口号。还可能是防火墙阻止。
    3.连接不成功还可以再检查一下mysql配置文件(/etc/my.cnf)
    里边有 blind-address 修改这键的值
    例:blind-address=0.0.0.0或者是127.0.0.1或者直接注释掉然后重启mysql