[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]