CentOS7安装MySQL,python3

写在前面,后面所有的软件包均放在/opt/software/下,安装均在/opt/apps/下

1.安装mysql8

1.1 资源

链接:https://pan.baidu.com/s/1csFQM-T_FATThGuw2rmOAA
提取码:good

1.2 检查虚拟机是否有mariadb

CentOS7一般有一个自带的MySQL体系的数据mariadb,需要先卸载了,顺序执行下面命令

rpm -qa|grep mariadb
rpm -e --nodeps mariadb-libs-5.5.68-1.el7.x86_64
rpm -qa|grep mariadb

1.3下载mysql8并放入/opt/software/下,并开始搭建

# 解压MySQL8安装包
tar -zxvf mysql-8.0.21-el7-x86_64.tar.gz
# 更名并移动
mv mysql-8.0.21-el7-x86_64 mysql8
mv mysql8 /opt/apps/
# 进入mysql8目录下,创建mysql8数据文件存放目录
cd /opt/apps/mysql8/
mkdir mysqldb
# 创建MySQL组和用户
groupadd mysql
# 创建用户(-s /bin/false参数指定mysql用户仅拥有所有权,而没有登录权限)
useradd -r -g mysql -s /bin/false mysql
# 给mysql目录及其子文件添加用户组和用户
chown -R mysql:mysql ./
# 创建MySQL配置文件
vi /etc/my.cnf
# 放入以下内容
# -------------------------------------
[mysqld]
# 设置3306端口
port=3306
# 设置mysql的安装目录
basedir=/opt/apps/mysql8
# 设置mysql数据库的数据的存放目录
datadir=/opt/apps/mysql8/mysqldb
# 允许最大连接数
max_connections=10000
# 允许连接失败的次数。这是为了防止有人从该主机试图攻击数据库系统
max_connect_errors=10
# 服务端使用的字符集默认为UTF8
character-set-server=utf8
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
# 默认使用“mysql_native_password”插件认证
default_authentication_plugin=mysql_native_password
[mysql]
# 设置mysql客户端默认字符集
default-character-set=utf8
[client]
# 设置mysql客户端连接服务端时默认使用的端口
port=3306
default-character-set=utf8
# -------------------------------------
# 安装mysql
cd /opt/apps/mysql8/bin
./mysqld --initialize --console

CentOS7安装MySQL,python3

1.4启动mysql

cd /opt/apps//mysql8/support-files/
./mysql.server start

初次运行会报一个错误
CentOS7安装MySQL,python3
我们不是专业的dba,在这里我们就暴力点,直接给mysql8赋予所有的权限就好了

chmod 777 /opt/apps/mysql8/
cd /opt/apps/mysql8/support-files
./mysql.server start

CentOS7安装MySQL,python3
启动成功

1.5登录MySQL并修改密码

cd /opt/apps/mysql8/bin
./mysql -uroot -pu3&k=d+yw+1y

此时会报一个错误

ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)

我看了很多安装博客,安装的时候都没有提到,我每次安装的时候都有,属实是恶心到我了。在这里搞一个通用的解决办法。先打开前面的my.cnf配置文件,在[mysqld]下面加上一行skip-grant-tables,保存,然后执行 /opt/apps/mysql8/support-files/mysql.server restart重启MySQL服务器,再次登录,只输入登录名,输入密码的时候按下回车,一次不行就两次,就绵密登陆进去了。
修改登陆密码,

use mysql

说明:8.0版本不允许在跳过策略 skip-grant-tables 时修改密码。
CentOS7安装MySQL,python3
先清除root用户密码,删除my.conf添加的 skip-grant-tables 后,通过空密码正常访问数据库后,就可以修改密码了。
补充:5.7/5.5 版本在此时就可以直接改一个新密码了。
CentOS7安装MySQL,python3
将密码清空以后,输入exit;退出MySQL,然后去配置文件中删除skip-grant-tables保存,重启mysql,再次输入密码进入,然后就可以修改密码了。
重新进入mysql,输入修改密码操作,又会出现一个错误,我的耐心真的快被耗尽了。
CentOS7安装MySQL,python3

ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.

此时输入 set password='一个足够复杂你又记得住的密码';
CentOS7安装MySQL,python3
记住,不要输入一个太简单的密码,不然又会报一个错误。这个错误如下

ERROR 1819 (HY000): Your password does not satisfy the current policy requirements

如果你非要设置123456这种简单密码,按照如下操作
执行如下两条语句:

set global validate_password.policy=0;
set global validate_password.length=1;

然后再执行set password='一个足够复杂你又记得住的密码';

1.6配置允许远程登录

use mysql
update user set user.Host='%'where user.User='root';
flush privileges;
quit

在Windows上使用vscode连接mysql,博主我测试成功。

上一篇:JDBC向数据库插入一条数据控制台不报错但是插入没成功


下一篇:寒假集训比赛错题——Password