0%

mysql 学习笔记

资源

安装 mysql 和 mycli

1
brew install mysql@5.7 mycli

mysqld

添加 mysqlservice 函数

1
2
3
4
5
function mysqlservice
/home/linuxbrew/.linuxbrew/opt/mysql@5.7/bin/mysql.server $argv
end

funcsave mysqlservice

启动 mysqld service

1
mysqlservice start

停止 mysqld service

1
mysqlservice stop

mysql client

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
 ~ tldr mysql                                                                                 Sat Oct 12 21:41:52 2019
mysql

The MySQL command-line tool.
More information: <https://www.mysql.com/>.

- Connect to a database:
mysql database_name
- Connect to a database, user will be prompted for a password:
mysql -u user --password database_name
- Connect to a database on another host:
mysql -h database_host database_name
- Connect to a database through a Unix socket:
mysql --socket path/to/socket.sock
- Execute SQL statements in a script file (batch file):
mysql -e "source filename.sql" database_name

管理用户

MySQL 用户账号和信息存储在名为 mysql 的 MySQL 数据库中.

以默认的超级管理员 root 登录 mysql

1
mysql -u root

为 root 设置密码

注意:在 MySQL5.7 中 user 表的 password 已换成了authentication_string
注意:password() 加密函数已经在 8.0.11 中移除了,可以使用 MD5() 函数代替

1
mysqladmin -u root -p[oldpass] password newpass

修改密码

1
2
mysql> use mysql
mysql> set password for 'root'@'localhost'=PASSWORD('new_password')

查看用户列表

注意 sql 语句需要以 ; 结尾, 而关键字大写只是习惯.

1
2
mysql> USE mysql;
mysql> SELECT user FROM user;

创建用户账号

1
mysql> CREATE USER floatsyi IDENTIFIED BY 'p@$$wOrd';

重命名用户帐号

1
mysql> RENAME USER floatsyi TO newfloatsyi;

删除用户账号

1
mysql> DROP USER newfloatsyi;

设置访问权限

在创建用户账号后,应该接着分配访问权限。
新创建的用户账号没有访问权限。它们能登录 MySQL 但不能执行任何数据库操作, 不能看到数据.

查看用户帐号的权限

1
mysql> SHOW GRANTS FOR floatsyi;

USAGE 表示根本没有权限

为用户帐号添加权限

1
mysql> GRANT SELECT ON crashcourse.* TO floatsyi

此 GRANT 允许用户在 crashcourse.*(crashcourse数据库的所 有表)上使用 SELECT 。通过只授予 SELECT floatsyi 对crashcourse 数据库中的所有数据具有只读访问权限

你也可以使用 GRANT ALL 来给予用户除 GRANT OPTION 外的所有权限

1
mysql> GRANT ALL ON crashcourse.* TO floatsyi;

为用户帐号撤销权限

1
mysql> REVOKE SELECT ON crashcourse.* TO floatsyi