ICode9

精准搜索请尝试: 精确搜索
首页 > 数据库> 文章详细

CentOS7安装MySQL,python3

2022-02-05 16:32:05  阅读:202  来源: 互联网

标签:opt mysql8 MySQL apps CentOS7 密码 mysql password 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

1.4启动mysql

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

初次运行会报一个错误

我们不是专业的dba,在这里我们就暴力点,直接给mysql8赋予所有的权限就好了

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


启动成功

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 时修改密码。

先清除root用户密码,删除my.conf添加的 skip-grant-tables 后,通过空密码正常访问数据库后,就可以修改密码了。
补充:5.7/5.5 版本在此时就可以直接改一个新密码了。

将密码清空以后,输入exit;退出MySQL,然后去配置文件中删除skip-grant-tables保存,重启mysql,再次输入密码进入,然后就可以修改密码了。
重新进入mysql,输入修改密码操作,又会出现一个错误,我的耐心真的快被耗尽了。

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

此时输入 set password='一个足够复杂你又记得住的密码';

记住,不要输入一个太简单的密码,不然又会报一个错误。这个错误如下

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,博主我测试成功。

标签:opt,mysql8,MySQL,apps,CentOS7,密码,mysql,password,python3
来源: https://www.cnblogs.com/yaowy001/p/15864347.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有