1 查用户
mysql> use mysql;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A
Database changed
mysql> select host,user from user;
+-----------+------------------+
| host | user |
+-----------+------------------+
| localhost | mysql.infoschema |
| localhost | mysql.session |
| localhost | mysql.sys |
| localhost | root |
| localhost | test_admin |
+-----------+------------------+
5 rows in set (0.00 sec)
查数据库
show databases;
2 用户删除
DROP USER 'temp'@'localhost';
DROP DATABASE scm;
flush privileges;
select user,host,plugin,authentication_string from user;
3 允许mysql远程访问
update user set host='%' where user='root' and host='localhost';
4 配置开机启动
chkconfig mysql on
5 远程连接
update mysql.user set host = '%' where user = 'scm';
6 给新用户授权时 mysql8
问题:
mysql> grant all privileges on *.* to 'root'@'cdh1' identified by '123456' with
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that
解决:
mysql> create user 'root'@'temp' identified by 'temp' ;
Query OK, 0 rows affected (0.18 sec)
mysql> grant all privileges on *.* to 'root'@'temp' with grant option ;
Query OK, 0 rows affected (0.01 sec)
mysql> flush privileges;
Query OK, 0 rows affected (0.07 sec)
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION;
8 show databases;
进入某个数据库
use databasename;
列出数据库中的表
show tables;
查看某个表全部字段
desc slow_log;
7 mysql 8.0 设置简单密码
第一步:修改MySQL 登入限制:
# vim /etc/my.cnf
在[mysqld]的末尾追加上一句:skip-grant-tables
保存并退出
第二步:重新启动MySQL服务
#systemctl restart mysqld
第三步 mysql -u root -p
第四步:登入MySQL 删除root 用户,新增admini 用户
#mysql
mysql> use mysql;
mysql> delete from user where user='root'; // 删除'root'用户
或者
update user set authentication_string=password('新密码') where user='root';
或者
update user set authentication_string="" where user="root"
Query OK, 1 row affected (0.04 sec)
mysql> select user,host from user; // 查询用户信息
+------------------+-----------+
| user | host |
+------------------+-----------+
| mysql.infoschema | localhost |
| mysql.session | localhost |
| mysql.sys | localhost |
+------------------+-----------+
3 rows in set (0.00 sec)
mysql> flush privileges; // 权限刷新
Query OK, 0 rows affected (0.00 sec)
mysql> CREATE USER 'root'@'%' IDENTIFIED with mysql_native_password BY '123456'; // 创建admini 用户和密码 ERROR 1819 (HY000): Your password does not satisfy the current policy requirements // 创建root'用户提示密码不符合规则,密码规则需要调整。
第四步:调整密码规则
mysql> SHOW VARIABLES LIKE 'validate_password%'; // 查看密码规则关键字段
+--------------------------------------+-------+
| Variable_name | Value |
+--------------------------------------+-------+
| validate_password.check_user_name | ON |
| validate_password.dictionary_file | |
| validate_password.length | 4 |
| validate_password.mixed_case_count | 1 |
| validate_password.number_count | 1 |
| validate_password.policy | LOW |
| validate_password.special_char_count | 1 |
+--------------------------------------+-------+
7 rows in set (0.00 sec)
mysql> set global validate_password.policy=0; //设置密码安全等级,0 是最低
Query OK, 0 rows affected (0.00 sec)
mysql> set global validate_password.length=4; // 设置密码最低长度,4
Query OK, 0 rows affected (0.00 sec)
mysql> flush privileges; //权限刷新
Query OK, 0 rows affected (0.01 sec)
第五步:创建admini 用户,并赋予MySQL 最高权限
mysql> CREATE USER 'root'@'%' IDENTIFIED with mysql_native_password BY '123456'; // 创建admini 用户和密码
或者
ALTER USER 'root'@'localhost' IDENTIFIED BY '123456';
如果出:
ERROR 1396 (HY000): Operation CREATE USER failed for 'root'@'%'
就直接删除 root
mysql> drop user root;
mysql> flush privileges;
mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION;
Query OK, 0 rows affected (0.10 sec)
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)
第六步:再次修改MySQL 登入限制:
去除[mysqld] 中的skip-grant-tables ,重新启动MySQL服务。
1.更改root密码
mysqladmin -uroot password 'yourpassword'
2.远程登陆mysql服务器
mysql -uroot -p -h192.168.137.10 -P3306
3.查询数据库
CREATE DATABASE 数据库名;
SOURCE d:/mysql.sql;
show databases;
4.进入某个数据库
use databasename;
5.列出数据库中的表
show tables;
6.查看某个表全部字段
desc slow_log;
show create table slow_log\G; (不仅可以显示表信息,还可以显示建表语句)
7.查看当前用户
select user();
8.查看当前所在数据库
select database();
9.创建新数据库(可以指定字符集)
create database db1 charset utf8;
10.创建新表
create table t1 (`id` int(4), `name` char(40));
11.查看数据库版本
select version();
12.查看数据库状态
show status; 当前会话状态
show global status; 全局数据库状态
show slave status\G; 查看主从数据库状态信息
13.查询数据库参数
show variables;
14.修改数据库参数
show variables like 'max_connect%';
set global max_connect_errors = 1000;(重启数据库会失效,要在配置文件中修改)
15.查看当前数据库队列
show processlist;
16.创建普通用户并授权给某个数据库
grant all on databasename.* to 'user1'@'localhost' identified by '123456';
17.查询表数据
select * from mysql.db; //查询该表中的所有字段
select count(*) from mysql.user; //count(*)表示表中有多少行
select db,user from mysql.db; //查询表中的多个字段
select * from mysql.db where host like '10.0.%';在查询语句中可以使用万能匹配 “%”
18.插入一行数据
insert into db1.t1 values (1, 'abc');
19.更改表的某一行数据
update db1.t1 set name='aaa' where id=1;
20.清空表数据
truncate table db1.t1;
21.删除表
drop table db1.t1;
22.清空数据库中的所有表(数据库名是eab12)
mysql -N -s information_schema -e "SELECT CONCAT('TRUNCATE TABLE ',TABLE_NAME,';') FROM TABLES WHERE TABLE_SCHEMA='eab12'" | mysql -f eab12
23.删除数据库
drop database db1;
24.数据库备份
mysqldump -uroot -p'yourpassword' mysql >/tmp/mysql.sql
25.数据库恢复
mysql -uroot -p'yourpassword' mysql </tmp/mysql.sql
26.新建普通用户
CREATE USER name IDENTIFIED BY 'ssapdrow';
27.更改普通用户密码
SET PASSWORD FOR name=PASSWORD('fdddfd');
28.查看name用户权限
SHOW GRANTS FOR name;
29.脚本中执行mysql命令
mysql -uuser -ppasswd -e"show databases"
echo "show databases"|mysql -uuser -ppassword
以下是执行大量mysql语句采用的方式
mysql -uuser -hhostname -ppasswd <<EOF
mysql语句
30 time_zone
mysql> set time_zone='SYSTEM';
Query OK, 0 rows affected (0.00 sec)
mysql> ^C
mysql> show variables like '%time_zone%';
+------------------+--------+
| Variable_name | Value |
+------------------+--------+
| system_time_zone | EDT |
| time_zone | SYSTEM |
+------------------+--------+
2 rows in set (0.00 sec)