[toc]
从今天开始开始MySQL相关方面的东西
上节的内容是MySQL 5.7的安装
这节内容是日常的一些命令
系统为windows 10
数据库为MySQL 5.7.25
## 1. 启停数据库
### 1.1 Windows
**管理员权限**
`net start mysql`
`net stop mysql`
**无需管理员权限**
`mysqladmin -uroot -p shutdown`
### 1.2 Linux
Linux版本的安装后续讲解
`service mysqld stop`
`service mysqld start`
------
## 2. 安装后安全性设置
### 2.1 修改密码
`$ mysql -uroot -p`
`mysql>set password=password('your_passord');`
### 2.2 删除测试用户和数据库
`mysql>delete from mysql.db where db in('test', 'test\_%');`
`mysql>delete from mysql.user where user='';`
`mysql>delete from mysql.user where authentication_string='';`
### 2.3 修改管理员账号
下面命令将root 改名为system 并赋予本地登录权限
`mysql>update mysql.user set user='system' where user='root' and host='localhost';`
`mysql>grant all on *.* to 'system'@'127.0.0.1' identified by '123456' with grant option;`
`mysql>delete from mysql.user where Host='%' and user='root'; `
`mysql>flush privileges;`
修改后需要使用如下命令登录
`mysql -usystem -p123456 -h 127.0.0.1`
## 3. 新建数据库及用户
如下语句新建test数据库,使用默认的字符集
并建立user1账户,赋予其test数据库的所有权限
%代表所有客户端都可登录
PS:MySQL的账号是 用户名和登录权限的结合,二者在一起构成一个账号
`mysql>create database test;`
`mysql>grant all on test.* to 'user1'@'%' identified by '123456';`
推荐使用如下语句新建用户
`mysql>create user 'user1'@'%';`
`mysql>alter user 'user1'@'%' identified by '123456';`
[image:468 size:orig]
**修改密码**
```
alter user 'user1'@'%' identified by '123456';
alter user user() identified by '123456';
mysqladmin --user=root --password password
```
## 4. 表的相关操作
` mysql -uuser1 -p123456 -h 127.0.0.1`
`mysql>use test`
```
CREATE TABLE IF NOT EXISTS `test`(
`test_id` INT UNSIGNED AUTO_INCREMENT,
`test_title` VARCHAR(100) NOT NULL,
PRIMARY KEY ( `test_id` ))ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
```
`insert into test values (1,'first row');`
`select * from test;`
## 5. 变量的查询
### 5.1 系统变量的查询
**查询会话变量**
可通过指定 session 查询会话变量
不加的话默认是会话变量
使用%匹配所有字符
`mysql> show variables like '%read_only%';`
`mysql> show variables like '%chara%'`
下面方法不支持%通配符
`mysql> select @@character_set_client;`
**查询全局变量**
可通过 global 查询全局变量
`mysql> show global variables like '%read_only%';`
`mysql> show global variables like '%character%'`
### 5.2 查询状态变量
MySQL中的状态变量用户系统监控和性能分析
会话及全局参考上面系统变量
也可使用%通配符
`mysql> show session status like '%Table_locks_immediate%';`
[image:469 size:orig]
## 6. 修改系统变量
### 6.1 全局变量
修改全局变量影响后续新连接的会话
并不会影响当前会话
数据库重新后失效,如果需要永久保持,请写入配置文件中
`set global character_set_client=utf8;`
[image:470 size:orig]
### 6.2 会话变量
修改会话变量只影响当前会话
默认不加关键字为修改会话变量
`set character_set_client=gbk;`
[image:471 size:orig]