显示表结构
-- 显示表结构,字段类型,主键,是否为空等属性,但不显示外键。
desc mysql.user;
数据导入和导出
以CentOS为例:
整个数据库导出:
mysqldump -uroot -p myDbName > mydata.sql
数据库某张表导出。-d仅导出数据结构。
mysqldump -u root -p -d [db] [table] > DBtable.sql
直接输入命令,执行数据导入:
mysql -uroot -p myDBname < mydata.sql
或者进入mysql服务,然后执行导入命令:
use dbname;
source /root/mydata.sql;
创建用户
MySQL 提供了以下 3 种方法创建用户:
- 使用 CREATE USER 语句创建用户
- 在 mysql.user 表中添加用户
- 使用 GRANT 语句创建用户
CREATE USER 语句
-- 使用明文密码作为输入来创建用户
CREATE USER 'test1'@'localhost' IDENTIFIED BY 'test1';
-- 使用密码的哈希值作为输入来创建用户
CREATE USER 'test1'@'localhost' IDENTIFIED BY PASSWORD password('test1');
INSERT INTO 语句
MySQL 5.7 的 user 表中的密码字段从 Password 变成了 authentication_string,如果你使用的是 MySQL 5.7 之前的版本,将 authentication_string 字段替换成 Password 即可。
mysql 数据库的 user 表中,ssl_cipher、x509_issuer 和 x509_subject 这 3 个字段没有默认值,所以向 user 表插入新记录时,一定要设置这 3 个字段的值,否则 INSERT 语句将不能执行。
INSERT INTO mysql.user(Host, User, authentication_string, ssl_cipher, x509_issuer, x509_subject) VALUES ('localhost', 'test2', PASSWORD('test2'), '', '', '');
FLUSH PRIVILEGES;
GRANT 语句
-- 使用 GRANT 语句创建名为 test3 的用户,主机名为 localhost,密码为 test3。该用户对数据库TestBD1的所有表拥有所有操作权限。
GRANT ALL PRIVILEGES on testDB.* TO 'test3'@localhost IDENTIFIED BY 'test3';
删除用户
格式: drop user 用户名@登录主机
更改用户密码
执行 UPDATE 语句
使用 UPDATE
语句,更新 mysql
数据库的 user
数据表
# 登录MySQL,直接执行SQL命令UPDATE用户表
use mysql;
update user set password=password('123') where user='root' and host='localhost';
update mysql.user set password=password('新密码') where User='test' and Host='localhost';
flush privileges;
使用 SET PASSWORD 语句
MySQL版本 < 5.7.6
, 使用 SET PASSWORD
语句
# 登录MySQL, 执行 SET PASSWORD 命令
SET PASSWORD FOR 'username'@'localhost' = PASSWORD('new_password');
如果您正在使用的是MySQL 5.7.6之前的版本,您可能需要使用SET PASSWORD语句:
使用 ALTER USER 语句
MySQL版本 >= 8.0
, SET PASSWORD
语句已被 ALTER USER
取代。
ALTER USER 'username'@'localhost' IDENTIFIED BY 'new_password';
使用 mysqladmin
shell环境下使用mysqladmin命令,格式为: mysqladmin -u用户名 -p旧密码 password 新密码
mysqladmin -uroot -p123456 password 123
mysqladmin -uroot -p password 'yourpassword'
数据库授权与远程登录
授权格式: grant 权限 on 数据库.* to 用户名@登录主机 identified by "密码";
1.开启远程登录授权:
grant select,update on testDB.* to test@localhost identified by '1234';
grant all privileges on testDB.* to test@localhost identified by '1234';
grant all privileges on *.* to 'root'@'%' identified by 'password123';
grant select,delete,update,create,drop,insert on *.* to test@"%" identified by "1234";
flush privileges;
mysql8.0 以前的版本可以使用grant在授权的时候隐式的创建用户,8.0以后已经不支持。必须先创建用户
CREATE USER 'user_name'@'%' IDENTIFIED BY 'pass';
grant all privileges on *.* to 'user_name'@'%';
2.关闭防火墙(如果需要):
service iptables stop
CentOS下mysql数据库常用命令 https://www.cnblogs.com/Mr-Zhong/p/7798186.html
MySQL创建用户的三种方法 https://www.jb51.net/database/295919siw.htm