Mysql相关的命令记录
记录一些用到的命令,同步更新在我的Blog上。
一、与docker相关
1、创建一个mysql容器
docker run --name mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=password -d mysql
2、docker登录进入到容器中
docker exec -it (container_name/id) /bin/bash
二、数据库整体相关
1、查看数据库的编码
show variables like 'character%';
2、查看数据表的定义
-- 两者都行
desc (table_name);
describe (table_name);
3、创建新用户
首先使用root
账户登录。
执行如下操作:
insert into mysql.user(Host,User,authentication_string,ssl_cipher,x509_issuer,x509_subject) values("localhost","your-name",password("123456"),"","","”);
需要注意的是在mysql5.7之前的版本中authentication_string
字段是对应Password
字段的。
另外Host指定为localhost
,表示只能本地访问,如果想要远程访问需要改为%
。
登录新用户前需要重启一下mysql
的服务。否则会报出错误。错误代码如下:ERROR 1045 (28000)
。
4、删除用户
使用root
账户登录。
执行如下操作:
use mysql;
Delete from user where User="your-name";
5、将数据库的权限授予某个用户
使用root
账户登录。
-- 授权(所有权限)
grant all privileges on test_g.* to name@localhost identified by '123456';
-- 刷新权限表
flush privileges;
-- 授予某用户test数据库的某些权限(select, update)
grant select,update on test.* to name@localhost identified by '123456';
-- 授予某用户所有数据库的某些权限(此处被非本地主机)
-- 要对本地主机授权,使用localhost替换 %
grant select,delete,update,create,drop on *.* to name@"%" identified by "123456";
其命令格式为:
grant 权限 on 数据库.* to 用户名@登录主机 identified by "密码";
6、展示当前运行的线程。
展示出当前正在运行的所有线程,子角色只能看到自己发起的线程。
show processlist;
7、修改数据库的编码
mysql默认的编码是latin1
。但是我们在使用的时候由于需要一些中文或者其他原因。需要更改数据库的编码格式。
创建数据库的时候可以指定编码格式。
create database db_name character set utf8;
a.命令行方式
此种方式不推荐使用,并且只在当前窗口有效。
set character_set_client=utf8;
set character_set_connection=utf8;
...
b.修改配置文件my.cnf
文件,位于/etc/mysql/my.cnf
需要重启生效
-- 增加或者修改。
[client]
default-character-set=utf8
[mysqlId]
character-set-server=utf8
default-character-set=utf8
8、展示数据表的状态信息
命令语法:
SHOW TABLE STATUS
[{FROM | IN} db_name]
[LIKE 'pattern' | WHERE expr]
显示出当前数据库中的数据表的各种信息。
eg:
show table status like "table_name";
持续更新中。。。。