现在大家的程序服务基本都是部署在云服务器上,今天我分享记录一下:使用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