2024-01-04
服务器
mysql5.7
376

一、下载软件

1.下载安装
官网地址:https://dev.mysql.com/downloads/
选择 "MySQL Community Server" -> 选择 "Archives"(历史版本)-> 选择版本(5.7.40)、系统(Linux - Generic)
mkdir /usr/local/download
mkdir /usr/local/software

cd /usr/local/download
wget https://cdn.mysql.com/archives/mysql-5.7/mysql-5.7.40-linux-glibc2.12-x86_64.tar.gz

tar -zxvf mysql-5.7.40-linux-glibc2.12-x86_64.tar.gz
cp -r mysql-5.7.40-linux-glibc2.12-x86_64 /usr/local/software/mysql5.7
2.创建用户组
groupadd mysql
useradd -r -g mysql mysql

chown -R mysql /usr/local/software/mysql5.7
chgrp -R mysql /usr/local/software/mysql5.7

touch /www/log/mysql/mysqld.log # 新建空白文件
chown mysql:mysql /www/log/mysql/mysqld.log # 指定文件所有者

touch /www/log/mysql/mysqld_slow.log # 新建空白文件
chown mysql:mysql /www/log/mysql/mysqld_slow.log # 指定文件所有者
3.创建数据目录
mkdir -p /usr/local/software/mysql5.7/data 
chown mysql:mysql -R /usr/local/software/mysql5.7/data 
chmod -R 777 /usr/local/software/mysql5.7/data
4.创建配置文件
vim /etc/my.cnf

[mysqld]
user=mysql

basedir=/usr/local/software/mysql5.7
datadir=/usr/local/software/mysql5.7/data
socket=/tmp/mysql.sock
pid-file=/usr/local/software/mysql5.7/data/mysqld.pid

# 重新指定日志路径
log-error=/www/log/mysql/mysqld.log
port=3306 
bind-address=127.0.0.1 

# character config
character_set_server=utf8mb4
symbolic-links=0
explicit_defaults_for_timestamp=true

# 慢日志记录
slow_query_log=1
long_query_time=3
slow_query_log_file=/www/log/mysql/mysqld_slow.log

# skip-grant-tables
5.初始化数据库
yum install -y libaio.so.1 libaio numactl

cd /usr/local/software/mysql5.7/bin
./mysqld --defaults-file=/etc/my.cnf --basedir=/usr/local/software/mysql5.7/ --datadir=/usr/local/software/mysql5.7/data/ --user=mysql --initialize

# 创建 pid 
touch /usr/local/software/mysql5.7/data/mysqld.pid
chmod 777 /usr/local/software/mysql5.7/data/mysqld.pid
6.设置开机启动
cp /usr/local/software/mysql5.7/support-files/mysql.server /etc/init.d/mysqld57

chkconfig --add mysqld57
chkconfig mysqld57 on

service mysqld57 start
service mysqld57 stop
service mysqld57 restart

systemctl start mysqld57.service
systemctl stop mysqld57.service
systemctl restart mysqld57.service
7.创建软链接
ln -s  /usr/local/software/mysql5.7/bin/mysql /usr/bin/mysql
ln -s  /usr/local/software/mysql5.7/bin/mysqldump /usr/bin/mysqldump # 备份数据库
8.用户登录
# 查找初始密码
cat /www/log/mysql/mysqld.log | grep password
2023-04-23T04:43:28.176816Z 1 [Note] A temporary password is generated for root@localhost: l5%sOhmiVpdV

# 登录
mysql -u root -p 

二、配置文件

1.修改 mysql 密码
vim /etc/my.cnf

# 打开配置文件,在 [mysqld] 后面添加新行
skip-grant-tables

service mysqld restart # 重启 mysqld

# 执行命令:
mysql -uroot -p

select user, host, authentication_string  from mysql.user; # 查看用户
alter user 'root'@'localhost' identified by '123456'; # 修改密码

flush privileges;
quit;

# 退出后删除 my.cnf 文件中 skip-grant-tables 这一行,并重启 mysqld
2.密码简单报错处理
alter user 'root'@'localhost' identified by '123456'; # 再次执行修改密码

set global validate_password_policy=0; # 首先修改 validate_password_policy 参数 
set global validate_password_length=1; # 再修改密码的长度

# 如果 mysql 只需要 ssh 连接,可以不创建 root@% 用户,只使用默认的 root@localhost 即可
select user, host, authentication_string  from mysql.user; # 显示当前所有用户
create user 'root'@'%' identified by '123456'; # 创建用户 root@%
update user set host = '%' where user ='root'; # 允许任何 ip 链接

flush privileges;

三、数据库用户

1.查看用户状态
mysql -h172.16.0.8 -uroot -P3306 -p # 用户登录

show grants for 'root'@'localhost'; # 查看某个用户授权
select user,host from mysql.user; # 显示当前所有用户
2.创建数据库
show databases;
create database blog default charset utf8mb4;
drop database blog;
3.添加 mysql 用户
create user 'test'@'localhost' identified by '123456'; # 创建用户

grant all privileges on *.* to 'test'@'localhost' identified by '123456'; # 赋予数据库权限
grant all privileges on `blog`.* to 'test'@'localhost' identified by '123456'; # 赋予 blog 数据库权限
grant create,drop,index,alter,select,insert,update,delete on `blog`.* to 'test'@'localhost' identified by '123456'; # 赋予 blog 数据库部分权限

revoke all privileges on `blog`.* from 'test'@'localhost'; # 回收所有权限
revoke delete on `blog`.* from 'test'@'localhost'; # 回收 delete 权限
flush privileges; # 刷新权限
4.删除用户
revoke all privileges on `blog`.* from 'test'@'localhost';
delete from mysql.user where user='test' and host='localhost';
flush privileges;
drop user 'test'@'localhost'; 
5.修改密码
select user, host, authentication_string  from mysql.user; # 查看用户
alter user 'root'@'localhost' identified by '123456'; # 修改密码

四、报错处理

1.Couldn't agree a key exchange algorithm (available: curve25519-sha256@libssh.org, ecdh-sha2-nistp521,ecdh-sha2-nistp384,ecdh-sha2-nistp256)
vim /etc/ssh/sshd_config

# 注释最后一行并添加
Ciphers aes128-ctr,aes192-ctr,aes256-ctr
# KexAlgorithms curve25519-sha256,curve25519-sha256@libssh.org,ecdh-sha2-nistp256,ecdh-sha2-nistp384,ecdh-sha2-nistp521,diffie-hellman-group-exchange-sha256

KexAlgorithms curve25519-sha256,curve25519-sha256@libssh.org,ecdh-sha2-nistp256,ecdh-sha2-nistp384,ecdh-sha2-nistp521,diffie-hellman-group-exchange-sha256,diffie-hellman-group1-sha1,diffie-hellman-group14-sha1,diffie-hellman-group-exchange-sha1

# 重启服务
systemctl restart sshd
标签:

mysql5.7