centos下安装mysql

启动服务
sudo systemctl start mysqld.service

sudo systemctl restart mysqld.service

查看启动日志
sudo systemctl status mysqld.service -l

查看mysql配置
cat /etc/my.cnf

查看安装包版本
rpm -qa | grep mysql

重置密码:
# 1.修改配置
vim /etc/my.cnf
# 2.进入编辑状态,在配置文件的最后加入
skip-grant-tables
# 3.保存退出
# 4.重启mysql服务
systemctl restart mysqld.service
# 5.登陆mysql命令行, 密码输入部分直接回车不用管他
mysql -uroot -p
# 6.清空root用户的密码
use mysql;
select host, user, authentication_string, plugin from user;
update user set authentication_string='' where user='root';
#7.退出mysql命令行,删除前面在my.cnf中添加的配置,然后重启mysql服务(步骤跟前面一样,不写)
#8.进入mysql命令行然后修改root密码即可
ALTER user 'root'@'%' IDENTIFIED BY 'root123##ROOT';


新建用户
CREATE USER 'root'@'%' IDENTIFIED BY 'NewPassword@123';

如果提示密码过于简单则执行
set global validate_password.policy=0;
set global validate_password.length=1;

修改加密方式
mysql8.0默认的加密方式是“caching_sha2_password”,而navicat只支持以前的"mysql_native_password",所以接下来修改密码加密方式
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'NewPassword@123';

设置用户权限
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%';

刷新权限
flush privileges;

Upgrade after a crash is not supported. The redo log was created with Maria的解决办法

建立备份目录,将两个日志文件备份
文件路径可通过/etc/my.cnf配置文件中的datadir得到
mkdir backup
cp /var/lib/mysql/ib_logfile0 /backup
cp /var/lib/mysql/ib_logfile1 /backup

然后删除备份前的这两个文件,
rm /var/lib/mysql/ib_logfile0
rm /var/lib/mysql/ib_logfile0

重启服务
sudo systemctl restart mysqld.service


docker在centos下安装mysql
1. 拉取镜像
docker pull mysql:latest

2.查看已安装镜像
docker images

3.运行镜像
docker run -p 3306:3306 --name mysql --restart=always --privileged=true \
-v /usr/local/mysql/log:/var/log/mysql \
-v /usr/local/mysql/data:/var/lib/mysql \
-v /usr/local/mysql/conf:/etc/mysql \
-v /etc/localtime:/etc/localtime:ro \
-e MYSQL_ROOT_PASSWORD=123456 -d mysql:latest

参数说明:
 -p 3306:3306:指定宿主机端口与容器端口映射关系
--name mysql:创建的容器名称
--restart=always:总是跟随docker启动
--privileged=true:获取宿主机root权限
-v /usr/local/mysql/log:/var/log/mysql:映射日志目录,宿主机:容器
-v /usr/local/mysql/data:/var/lib/mysql:映射数据目录,宿主机:容器
-v /usr/local/mysql/conf:/etc/mysql:映射配置目录,宿主机:容器
-v /etc/localtime:/etc/localtime:ro:让容器的时钟与宿主机时钟同步,避免时区的问题,ro是read only的意思,就是只读。
-e MYSQL_ROOT_PASSWORD=123456:指定mysql环境变量,root用户的密码为123456
-d mysql:latest:后台运行mysql容器,版本是latest。

4. 查看正在运行的容器
docker ps

果显示的是up状态,那就是启动成功了。如果是restarting,说明是有问题的

5. 查看日志
docker logs -f mysql

如果出现错误 Failed to access directory for --secure-file-priv. Please make sure that dir

6. 创建mysql配置文件:my.cnf
cd /usr/local/mysql
ll
cd conf
vi my.cnf

文件内容:
[client]
default-character-set=utf8mb4

[mysql]
default-character-set=utf8mb4

[mysqld]
# 设置东八区时区
default-time_zone = '+8:00'
# 设置密码验证规则,default_authentication_plugin参数已被废弃
# 改为authentication_policy
#default_authentication_plugin=mysql_native_password
authentication_policy=mysql_native_password

# 限制导入和导出的数据目录
# 为空,不限制导入到处的数据目录;
# 指定目录,必须从该目录导入到处,且MySQL不会自动创建该目录;
# 为NULL,禁止导入与导出功能
#secure_file_priv=/var/lib/mysql
secure_file_priv=
init_connect='SET collation_connection = utf8mb4_0900_ai_ci'
init_connect='SET NAMES utf8mb4'
character-set-server=utf8mb4
collation-server=utf8mb4_0900_ai_ci
skip-character-set-client-handshake
skip-name-resolve

7. 查看容器内部
docker exec -it mysql /bin/bash

然后可以 mysql 进入进行创建账户,赋予权限操作

8. 重启mysql服务,使其配置生效
docker restart mysql

9. 设置docker启动时启动mysql
docker update mysql --restart=always


设置root账户
进入mysql后
user mysql
select host, user, plugin,  authentication_string, password_expired from user;
update user set host='%' where user='root';
update user set plugin='mysql_native_password' where user='root';
ALTER user 'root'@'%' IDENTIFIED BY 'root';
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值