glibc安装
安装步骤
1.安装依赖库
[root@localhost ~]# yum list installed |grep libaio
2.解压查看
[root@localhost ~]# tar -xvf mysql-8.0.33-linux
glibc2.12-x86_64.tar
[root@localhost ~]# tar -xvf mysql-8.0.33-linux
glibc2.12-x86_64.tar.xz
[root@localhost ~]# ls mysql-8.0.33-linux
glibc2.12-x86_64/
3.创建⽤户
[root@localhost ~]# useradd -r -s /sbin/nologin mysql
[root@localhost ~]# id mysql
uid=27(mysql) gid=27(mysql) 组=27(mysql)
4.清空其他环境 mariadb
[root@localhost ~]# rm -rf /etc/my.cnf
5.将解压⽂件放置在根⽬录下
[root@localhost ~]# mv mysql-8.0.33-linux
glibc2.12-x86_64/ /mysql8
[root@localhost ~]# ls /mysql8/
6.切换mysql8⽬录,创建⼀个mysq
files
cd /mysql8/
mkdir mysql-files
7.修改mysql-files⽂件权限750和所属
mysql
[root@localhost mysql8]# chown mysql:mysql mysql
files/
[root@localhost mysql8]# chmod 750 mysql-files/
[root@localhost mysql8]# ls -l
8.初始化数据库,找到初始密码
[root@localhost mysql8]# ./bin/mysqld --initialize
--user=mysql --basedir=/mysql8
9.查看是否初始化成功过,可以看⽂件夹中
是否有data⽂件夹
[root@localhost mysql8]# ls
10.设置ssl安全加密连接 敏感数据
[root@localhost mysql8]# ls ./bin/*ssl*
./bin/mysql_ssl_rsa_setup
[root@localhost mysql8]# ./bin/mysql_ssl_rsa_setup
--datadir=/mysql8/data
[root@localhost mysql8]# ls ./data/
11.其他配置
[root@localhost mysql8]# cp support
files/mysql.server /etc/init.d/mysql8
[root@localhost mysql8]# ls /etc/init.d/mysql8
[root@localhost mysql8]# ls /etc/init.d/
# 默认情况下,启动⽂件认识安装⽬录在/usr/local/⽬录下
[root@localhost mysql8]# sed -n '/^basedir=/p'
/etc/init.d/mysql8
[root@localhost mysql8]# sed -i
'/^basedir=/cbasedir=/mysql8' /etc/init.d/mysql8
[root@localhost mysql8]# sed -n '/^basedir=/p'
/etc/init.d/mysql8
[root@localhost mysql8]# sed -n '/^datadir=/p'
/etc/init.d/mysql8
[root@localhost mysql8]# sed -i
'/^datadir=/cdatadir=/mysql8/data'
/etc/init.d/mysql8
[root@localhost mysql8]# sed -n '/^datadir=/p'
/etc/init.d/mysql8
12.启动服务 不能使⽤systemctl
ot@localhost mysql8]# service mysql8 start
[root@localhost mysql8]# ls /mysql8/data/*.err
13.常⻅问题
1. 为什么要删除/etc/my.cnf⽂件
```
数据库初始化时候,会⾃动找my.cnf配置,但是原有的mariadb配
置⽂件,会失败
```
2. mysql-files⽂件夹
```
⽬前么有⽤,必须创建,可能导致⽆法启动,数据的备份和还原,导
⼊和到处所指定的默认⽬录
```
3. 判断数据库初始化成功
```
数据库的安装容易出错的地⽅是初始化,⽆法正常启动,确认⽅式
安装⽬录下是否⽣成data⽬录
```
4. 为什么要修改mysql.server放在/etc/init.d⽬录下
```
不放也可以,但是就⽆法使⽤service mysql8 start启动
只能使⽤bin/mysqld可执⾏⽂件启动
```
5. 为什么需要修改basedir和datadir
```
glibc是⼆进制绿⾊版本,默认配置很多,需要修改
```
6. 开机启动
```shell
[root@localhost mysql8]# chkconfig --list
注:该输出结果只显示 SysV 服务,并不包含
原⽣ systemd 服务。SysV 配置数据
可能被原⽣ systemd 配置覆盖。
要列出 systemd 服务,请执⾏ 'systemctl list
unit-files'。
查看在具体 target 启⽤的服务请执⾏
'systemctl list-dependencies [target]'。
netconsole 0:关 1:关 2:关 3:关 4:关 5:关 6:关
network 0:关 1:关 2:开 3:开 4:开 5:开 6:关
# 添加开机启动
[root@localhost mysql8]# chkconfig --add mysql8
#查看启动该列表
[root@localhost mysql8]# chkconfig --list
注:该输出结果只显示 SysV 服务,并不包含
原⽣ systemd 服务。SysV 配置数据
可能被原⽣ systemd 配置覆盖。
要列出 systemd 服务,请执⾏ 'systemctl list
unit-files'。
查看在具体 target 启⽤的服务请执⾏
'systemctl list-dependencies [target]'。
# 启动2345
[root@localhost mysql8]# chkconfig mysql8 on
[root@localhost mysql8]# chkconfig --list
注:该输出结果只显示 SysV 服务,并不包含
原⽣ systemd 服务。SysV 配置数据
可能被原⽣ systemd 配置覆盖。
要列出 systemd 服务,请执⾏ 'systemctl list
unit-files'。
查看在具体 target 启⽤的服务请执⾏
'systemctl list-dependencies [target]'。
mysql8 0:关 1:关 2:开 3:开 4:开 5:开 6:关
netconsole 0:关 1:关 2:关 3:关 4:关 5:关 6:关
network 0:关 1:关 2:开 3:开 4:开 5:开 6:关
# 3是字符界⾯,5是图形界⾯
```
## 14 .mysql glibc版本后续设置
1. 修改密码1
```shell
[root@localhost mysql8]# ./bin/mysqladmin -uroot
password '123' -p
Enter password:
2. 修改密码2
```shell
mysql> set password='456';
mysql> flush privileges;
[root@localhost mysql8]# ./bin/mysql -uroot -p456
3. 将mysql的bin⽬录添加到环境变量中
```shell
[root@localhost mysql8]# sed -i '$aexport
PATH=/mysql8/bin/:$PATH' /etc/profile
[root@localhost mysql8]# sed -n '$p'
/etc/profile
export PATH=/mysql8/bin/:$PATH
[root@localhost mysql8]# source /etc/profile
[root@localhost mysql8]# which mysql
/mysql8/bin/mysql
[root@localhost mysql8]# mysqld
4. 配置⽂件
```shell
[root@localhost mysql8]# fg
vim ./my.cnf
[mysqld]
basedir=/mysql8
datadir=/mysql8/data
socket=/tmp/mysql.sock
#重启服务
[root@localhost mysql8]# service mysql8 restart
# 查看套接字⽂件
[root@localhost mysql8]# ll /tmp/
# 有套接字⽂件,就可以链接mysql服务
[root@localhost mysql8]# mysql -uroot -p456
14. 安全配置 ⽣产环境
[root@localhost mysql8]# mysql_secure_installation
# ⼀路y下去 改密码,不允许远程等等
[root@localhost mysql8]# mysql -uroot -p456
安全用户角色权限
$PATH
搞系统设置设置⾥头path
⽬标包含mysql 可执⾏⽂件,那么就是由使⽤
在终端使⽤
./bin/mysql -h192.168.71.164 -P3306 -uroot -proot
1.远程登录前提条件是mysql.user表中的host属性为%,如果是
localhost就不允许远程登录,update mysql.user set host="%"
where user="root",flush privileges;
2.远程管理,可以使⽤图形化⼯具,sqlyog,navicat,掌握命令⼯
具,客户端⼯具 mysql
3.mysql -h192.168.71.129 -P3306 -uzhangmin -pZhang_min123
-h 主机 ip或者是域名 如果是localshost或者是127.0.0.1可省略
-P 端⼝ 默认是3306,如果是默认的,可以省略-u ⽤户名
-p 密码,可以不换⾏直接输⼊,也可以换⾏ 不回显输⼊密码
创建账户
create user 'zhangmin'@'%' identified by
'Zhang_min123';
给权限
grant all on *.* to 'zhangmin'
创建库
create database if not exists test;
创建表
use test;
create table user(
id int primary key,
username varchar(45) not null,
password varchar(45) not null
);
添加数据
insert into test.user values(1,"zhangsan","123");
insert into test.user values(2,"lisi","456");
insert into test.user values(3,"wamngwi","789");
insert into test.user values(4,"zhaoliu","aaa");
添加lilaosi账号,修改密码,查看mysql.user中的lilaosi的信息
mysql> create user 'lilaosi'@'%' identified by
'lilaoshi_123';
ERROR 1819 (HY000): Your password does not satisfy
the current policy requirements
mysql> create user 'lilaosi'@'%' identified by
'Lilaoshi_123';
mysql> alter user 'lilaosi'@'%' identified by
'Lilaosi_123';
mysql> select host,user from mysql.user;
使⽤root账号,为lilaosi账号添加test库存中所有的表的所有权限
grant all on test.* to 'lilaosi';
# lilaosi就获得了test库中所有的表的操作权限,但是,由于
root没有个lilaosimysql库的权限,所以lilaosi账号⽆法查看
mysql库
1.密码安全策略
查看密码策略
mysql> show variables like 'validate%';
修改策略
mysql> set global validate_password.length=0;
mysql> set global validate_password.policy=LOW;
mysql> show variables like 'validate%';
2.⽤户
创建⽤户
练习
创建三个账号,abc[abcd],ccc[a1b2c3] ,ddd[231343]
<mysql> create user 'efg'@'%' identified by 'efg';
ERROR 1819 (HY000): Your password does not satisfy
the current policy requirements
mysql> create user 'efgh'@'%' identified by 'efgh';
mysql> select host,user from mysql.user;
删除⽤户
mysql> drop user 'zhangmin';
mysql> select user from mysql.user;
修改⽤户
mysql> alter user 'zhangmin' identified by
'abc123';
练习
abc。ccc。ddd三个账号的密码修改为1234
查看⽤户
3.⻆⾊
创建⻆⾊
mysql> create role 'a';
mysql> show grants for 'a';
4.权限
刷新权限
mysql> flush privileges;
为root账号添加权限
mysql> grant system_user on *.* to "root";
mysql> show grants for 'root';
修改权限
mysql> show grants for "efgh";
删除权限
mysql> revoke all on *.* from "efgh";
mysql> show grants for "efgh";