沙滩星空的博客沙滩星空的博客

linux中的mysql常用命令

显示表结构

-- 显示表结构,字段类型,主键,是否为空等属性,但不显示外键。

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 种方法创建用户:

  1. 使用 CREATE USER 语句创建用户
  2. 在 mysql.user 表中添加用户
  3. 使用 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
未经允许不得转载:沙滩星空的博客 » linux中的mysql常用命令

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址