Mysql创建用户、修改密码、修改用户名或数据库名相关语句(附详细例子)

关于用户

创建用户

-- 语法
CREATE USER '用户名'@'主机地址' IDENTIFIED with 加密方式 BY '密码';
-- 加密方式(不写默认为当前mysql版本的加密方式)
--mysql5.7左右为mysql_native_password
--mysql8.0以上为caching_sha2_password
--秘钥对生成方式:
--1)自动生成
--参数 caching_sha2_password_auto_generate_rsa_keys 默认是开启,数据库在启动时自动生成相对应的公钥和私钥。
--2)手动生成
--通过 mysql_ssl_rsa_setup 指定目录生成 SSL 相关的私钥和证书以及 RSA 相关的公钥和私钥。
--2.2 查看 RSA 公钥值的方式:
--通过状态变量 Caching_sha2_password_rsa_public_key 可以查看 caching_sha2_password 身份验证插件使用的 RSA 公钥值。

-- 例子:创建一个text用户,密码为root'
CREATE USER text IDENTIFIED BY 'root'; -- 当不指定主机地址时,主机地址默认为%。代表所有地址都可以使用该用户。

-- 例:创建dev用户,指定地址为localhost,密码为123456。代表只有本机才可以使用dev用户。
CREATE USER 'dev'@'localhost' IDENTIFIED BY '123456';

-- 例:创建pro用户,指定地址为192.168.1.%,密码为123456。代表只有192.168.1.xxx段的网络才可以使用pro用户。'
CREATE USER 'pro'@'192.168.1.%' IDENTIFIED BY '123456';

修改用户(用户名、主机地址、密码等)

-- 修改语句
-- 修改localhost地址下的test用户的密码为123456
set password for 'test'@'localhost'= PASSWORD('123456');
flush privileges; -- 刷新密码

-- 修改mysql用户密码加密策略和用户密码
alter user '用户名'@'主机地址' password with '加密策略' by '新密码';
--例
--mysql5.7左右为mysql_native_password
--mysql8.0以上为caching_sha2_password
alter user 'root'@'localhost' password with mysql_native_password by '123456'

-- 修改mysql用户密码永不过期(mysql8.0:如果my.ini文件中设置了密码过期天数,后面创建的用户没有设置密码永不过期的话,都默认为密码全局过期策略天数)
alter user 'root'@'localhost' password expire never;

--修改localhost下的test用户的主机地址为%'
UPDATE mysql.`user` u SET u.`Host` = '%' WHERE u.`User` = 'test' AND u.`Host` = 'localhost';

-- 修改localhost下的test用户的用户名为dev
UPDATE mysql.`user` u SET u.`User` = 'dev' WHERE u.`User` = 'test' AND u.`Host` = 'localhost';

删除用户
提示:直接去mysql数据库的user表中删除有时候并没有用。

-- 删除语句
-- 删除localhost下的dev用户
DROP USER 'dev'@'localhost';
flush privileges; -- 刷新

用户授权

文章链接: Mysql授权其他用户操作数据库或表权限语句

数据库操作

-- 当数据库aaa不存在时创建。字符集为utf8,列排序规则为utf8_general_ci
CREATE DATABASE IF NOT EXISTS aaa CHARACTER SET utf8 COLLATE utf8_general_ci;
-- 修改数据库字符集(可解决中文乱码问题)
alter database aaa CHARACTER SET utf8 COLLATE utf8_general_ci;
-- 数据库存储信息中存在表情,则需使用utf8mb4和utf8mb4_general_ci
alter database aaa CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
-- 删除数据库
DROP DATABASE IF EXISTS aaa;

表操作

-- 创建表
CREATE TABLE `test` (
  `id` int(10) NOT NULL AUTO_INCREMENT, -- 非空,自增长
  `name1` varchar(80) CHARACTER SET utf8mb4 DEFAULT NULL,  -- utf8mb4可以存表情,因为表情是4个子节
  PRIMARY KEY (`id`) -- 多个主键使用逗号隔开
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;

-- 修改表编码
alter table 表名 character set utf8 COLLATE utf8_general_ci;

-- 修改表字段名称及数据类型及长度
ALTER TABLE aaa.test CHANGE 旧名称 新名称 数据类型及长度;
-- 例如:
ALTER TABLE aaa.test CHANGE name name1 VARCHAR(100);

-- 修改字段编码
ALTER TABLE 表名 MODIFY 列名 数据类型及长度 CHARACTER SET 编码名 COLLATE 列排序编码名;
-- 例如
ALTER TABLE aaa.test MODIFY name1 VARCHAR(60) CHARACTER SET utf8 COLLATE utf8_general_ci;

-- 删除表
DROP TABLE IF EXISTS 表名;
-- 例如
DROP TABLE IF EXISTS aaa.test1;

数据操作

-- 查询语法
select * from 表名;
-- 例子
select * from aaa.u;

-- 插入语法
insert into 表名 (列名,列名) values (...),(...)... -- 指定数据列
insert into 表名 values (...),(...)...  --不指定数据列
-- 例子 假设表u有三个字段。id name sex
insert into aaa.u (id,name) values (1,'zhangsan'),(2,'lisi'); -- 指定数据列
insert into aaa.u values (1,'zhangsan','男'),(2,'lisi','女'); -- 不指定数据列

-- 更新语法
update 表名 set 列名 = 新值,列名 = 新值,... where 某列 = 某值;
-- 例子
update aaa.u set id = 100,name = '更新',sex = '未知' where id = 2;

-- 删除语法
DELETE FROM 表名 WHERE 列名 =;
-- 语法
delete from aaa.u where id = 2;
  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值