不同版本会有异同,注意MySQL版本。
基本操作 mysql版本8.0.13
sudo mysql -uroot -p # 链接数据库,下一步输入密码
# 下面是mysql的命令行
show databases; # 查看所有有权限的数据库
create database firstDB; # 创建数据库
use firstDB;
show tables; # 查看所有有权限的数据表
select database(); # 查看当前使用数据库
drop database firstDB; # 删除数据库
声明、删除、使用存储变量
-- 删除存储过程
DROP PROCEDURE IF EXISTS initData;
-- 创建存储过程
delimiter $$
CREATE PROCEDURE initData()
BEGIN
DECLARE i INT DEFAULT 1;
WHILE i<3 DO
INSERT users(`name`, pass, email) VALUES(CONCAT("name", i), "xxx", CONCAT("email", i));
SET i=i+1;
END WHILE;
END$$
-- 恢复结束标识是分号
delimiter;
-- 使用存储过程函数
call initData();
添加字段 类型 注释
可以添加多个,逗号分隔。
ALTER TABLE users
ADD (
`uuid` VARCHAR(255)
DEFAULT NULL
COMMENT "更改密码使用的uuid"
AFTER pass)
添加唯一索引:
ALTER TABLE users ADD UNIQUE INDEX(email)
Navicat链接aws的mysql 原文
- 安全组,添加规则。选择规则MYSQL/Aurora,端口设置为3306,tcp
- 取消绑定地址,允许来自外网的访问
vim /etc/mysql/mysql.conf.d/mysqld.cnf
# 找到bind-address = 127.0.0.1,注释掉
- 登录数据库
目的是添加用户username
并且都可以访问
GRANT ALL PRIVILEGES ON *.* TO 'username'@'%' IDENTIFIED BY 'password' WITH GRANT OPTION;
FLUSH PRIVILEGES;
或者更改root远程访问
USE mysql;
UPDATE user SET Host='%' where User='root';
FLUSH PRIVILEGES;
- 重启mysql
sudo service mysql restart
用户&&权限
-- 使用数据库 mysql
use mysql;
-- 查询用户
SELECT `Host`,`User` FROM `user`;
-- 添加用户,名字:test01;允许IP:localhost;密码:123456
CREATE USER 'test01'@'localhost' IDENTIFIED by '123456';
-- 删除用户
DROP USER 'test01'@'localhost';
-- 添加权限 当表不存在的时候可以执行
GRANT SELECT ON nodesql.* TO 'test01'@'localhost';
-- 删除权限 当表不存在的时候执行不成功
REVOKE INSERT ON nodesql.* FROM 'test01'@'localhost';
REVOKE ALL PRIVILEGES ON nodesql.* FROM 'test01'@'localhost'; -- 删除所有权限
-- 修改密码
ALTER USER 'test01'@'localhost' IDENTIFIED by '123qwe'
-- 重命名 也可以改host
RENAME USER 'test01'@'localhost' TO 'test02'@'localhost';
-- 查看权限
SHOW GRANTS;
SHOW GRANTS FOR 'test01'@'localhost';
-- GRANT USAGE ON *.* TO `test01`@`localhost`
-- GRANT SELECT ON `nodesql`.* TO `test01`@`localhost`
-- 刷新权限
FLUSH PRIVILEGES;
mysql数据库用户在创建的时候就会赋予USAGE权限,这个权限很小,几乎为0。只能连接数据库和查询information_schema的权限、可以修改自己的密码。不过这个权限也很奇怪,你无法revoke。