mysql教程
# 安装
安装步骤参考这篇教程 (opens new window)。
安装环境:centos系统。
# 先安装yum
wget http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm
rpm -ivh mysql-community-release-el7-5.noarch.rpm
yum update
yum install mysql-server
# 权限设置:
chown -R mysql:mysql /var/lib/mysql/
# 初始化 MySQL:
mysqld --initialize
# 运行后,报错,不过不影响。继续往下
# [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).
# 启动 MySQL:
systemctl start mysqld
# 查看 MySQL 运行状态:
systemctl status mysqld
# 验证 MySQL 安装
mysqladmin --version
# 检查mysql是否启动
ps -ef | grep mysqld
# 已启动将会输出进程列表
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
# 使用
# 简单执行
# 直接连接
mysql
# 显示数据库
mysql> SHOW DATABASES;
# ctrl+c或者输入exit退出mysql交互命令行
# 默认root密码为空,设置root密码
mysqladmin -u root password "new_password";
# 修改密码
mysqladmin -u用户名 -p旧密码 password 新密码
# 如果在mysql交互命令行,也可以如下修改密码
mysql> set password for 用户名@localhost = password(‘新密码’);
# 登录mysql
mysql -u root -p
# 查看root用户的配置
mysql> select host,user from user where user = 'root';
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# 用户设置
# 新增用户
mysql> INSERT INTO user
-> (host, user, password,
-> select_priv, insert_priv, update_priv)
-> VALUES ('localhost', 'guest',
-> PASSWORD('guest123'), 'Y', 'Y', 'Y');
ERROR 1364 (HY000): Field 'ssl_cipher' doesn't have a default value
1
2
3
4
5
6
2
3
4
5
6
可以看到有报错,原因是严格模式禁止通过insert 这种形式直接修改mysql库中的user表进行添加新用户。
找到mysql的配置文件
sudo find / -name my.cnf
1
发现是严格模式:
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
1
不过这里就不动了,改用其他方式。
- GRANT
GRANT priv_type ON database.table TO user [IDENTIFIED BY [PASSWORD] 'password']
1
- priv_type 参数表示新用户的权限;
- database.table 参数表示新用户的权限范围,即只能在指定的数据库和表上使用自己的权限;
- user 参数指定新用户的账号,由用户名和主机名构成;
- IDENTIFIED BY 关键字用来设置密码;
- password 参数表示新用户的密码。
举例1:
mysql> GRANT SELECT ON*.* TO 'test@localhost' IDENTIFIED BY '123456';
Query OK, 0 rows affected (0.00 sec)
1
2
2
该用户只能操作SELECT,注意:单引号不能省略。
例2:
mysql> GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP
-> ON TUTORIALS.*
-> TO 'zara'@'localhost'
-> IDENTIFIED BY 'zara123';
1
2
3
4
2
3
4
给指定数据库TUTORIALS添加用户 zara ,密码为 zara123 。
- 设置拥有全部权限的的admin用户:
GRANT ALL PRIVILEGES ON *.* TO 'admin'@'%' IDENTIFIED BY '123456' WITH GRANT OPTION;
1
连接的主机设置为“%”,代表任意的 ip 可以连接。
- CREATE
CREATE USER 'testuser1'@'localhost';
1
# 查看权限
SHOW GRANTS FOR 'username'@'hostname';
1
其中,username 表示用户名,hostname 表示主机名或主机 IP。
# 查表
# 切换到 mysql 数据库
mysql> use mysql
# 查看有哪些表
mysql> show tables;
1
2
3
4
2
3
4
# 可视化操作
使用navicat进行可视化操作。
注意root一般不允许远程,所以要创建用户进行连接。详见上一节的新增用户。
tip:如果连接不上,可能是以下情况:
- 主机设置只能本地访问。
netstat -apn|grep 3306
,如果显示的是127.0.0.1:3306
,说明只能本机启动,要去mysql配置文件(my.cnf)修改。- 重启 mysql 服务
sudo service mysql restart
- 防火墙
- mysql默认是3306端口,登录腾讯云的防火墙,果然没有打开3306端口,开启即可。
Navicat for mysql破解版安装 (opens new window)
# 参考文章
上次更新: 2023/01/29, 18:04:46