Centos7 安装mysql8.0.28以及使用工具连接数据库时出现的问题处理

1.下载MySQL8.0.28安装包

	官网地址:https://downloads.mysql.com/archives/community/
	本人Centos7系统架构是x86_64所以选择如下:
	![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/0b4a7c0351d94763b56f561374ad5c68.png)

2.上传安装包并解压

1.创建mysql安装目录
mkdir /usr/local/mysql
2.通过Xftp将mysql-8.0.28-1.el7.x86_64.rpm-bundle.tar上传到安装目录下。
3.tar -zxvf mysql-8.0.28-1.el7.x86_64.rpm-bundle.tar

3.检查Centos是否存在mariadb

1.rpm -qa|grep mariadb
	mariadb-libs-5.xxxxxx
2.若存在则需要进行卸载,会和mysql存在冲突
	rpm -e --nodeps mariadb-libs

4.安装mysql8.0.28

包与包之前存在依赖关系,按顺序进行安装:
1.rpm -ivh mysql-community-common-8.0.28-1.el7.x86_64.rpm
2.rpm -ivh mysql-community-client-plugins-8.0.28-1.el7.x86_64.rpm
3.rpm -ivh mysql-community-libs-8.0.28-1.el7.x86_64.rpm
4.rpm -ivh mysql-community-client-8.0.28-1.el7.x86_64.rpm
5.rpm -ivh mysql-community-icu-data-files-8.0.28-1.el7.x86_64.rpm
6.rpm -ivh mysql-community-server-8.0.28-1.el7.x86_64.rpm

5.配置my.cnf文件

vi /etc/my.cnf
1.忽略表明大小写
在配置文件中加入 lower_case_table_names=1
# 按ESC 输入:wq + 回车键,保存退出

6.初始化

mysqld --initialize --console

7.设置用户和用户组权限

chown -R mysql:mysql /var/lib/mysql/

8.启动mysql

systemctl start mysqld

9.查看临时密码以及修改

1.查看临时密码
cat /var/log/mysqld.log|grep localhost
2.登录mysql
mysql -uroot -p
然后输入临时密码进行登录
3.修改密码
alter user 'root'@'localhost'  identified by '新密码';
4. exit退出登陆后重新登陆时输入新密码即可

10.创建数据库/用户

1.创建数据库
create database test_database;	
2.创建用户
@'%'指允许远程访问
create user 'test_root'@'%' identified by '密码';
3.给新用户进行授权
以下命令指:用户test_root只可访问test_database数据库和该数据库下所有的表
grant all privileges on test_database.* to 'test_root'@'%';
以下命令指:用户test_root可访问所有数据库和所有数据库下所有的表
grant all privileges on *.* to 'test_root'@'%';
4.刷新
flush privileges;

11.使用工具连接数据库时出现的问题处理

1.错误码2003
防火墙问题
1.打开防火墙3306端口
firewall-cmd --permanent --zone=public --add-port=3306/tcp
2.刷新防火墙
firewall-cmd --reload
2.错误码1130
不允许远程访问问题
1.登录mysql
   mysql -uroot -p
   选择数据库
   use mysql;
   修改远程登录权限(将localhost改为%)
   update user set host = '%' where user = 'root'; 
   刷新
   flush privileges;
   ![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/48aa0a4809704bc989d5d9c63783952c.png)
3.错误码2058
身份认证问题
1.修改身份认证
alter user 'test_root'@'%'  identified with mysql_native_password by '密码';
2.刷新
flush privileges;
### 使用 Docker 在 CentOS 7安装 MySQL 8.0.28 #### 验证 Docker 是否已安装 为了确认 CentOS 7 已经安装了 Docker,可以使用命令 `rpm -qa | grep docker` 来查找是否存在任何与 Docker 相关的包。如果未发现,则需按照标准流程来部署 Docker。 #### 关闭防火墙服务 考虑到安全性和网络配置的需求,在操作前建议先停用系统的防火墙功能以减少潜在冲突。这可以通过执行 `systemctl stop firewalld.service && systemctl disable firewalld.service` 实现[^1]。 #### 更新 YUM 并配置阿里云镜像加速器 更新现有的软件包列表至最新状态,并为提高下载速度可选地设置国内常用的 Aliyun 或其他可信第三方镜像源作为加速选项之一。具体做法涉及编辑 `/etc/yum.repos.d/docker-ce.repo` 文件加入相应的 URL 地址。 #### 正式安装 Docker CE 完成上述准备工作之后便可以直接利用 yum install 命令获取官方发布的稳定版 Docker Engine—Community (CE),即社区版本;随后验证其正确无误地被加载到环境中——通过调用 `docker --version` 查看当前使用的客户端和服务端构建号信息。 #### 启动并启用 Docker 服务 最后一步是激活新近安设的服务进程使之能够随主机自启以及立即生效,借助于如下指令达成目的:`systemctl enable docker && systemctl start docker` #### 下载 MySQL 8.0.28 的 Docker 映像 现在转向数据库部分的工作流,首先是从在线公共库拉取指定标签下的映像副本,这里指定了特定的小数点后两位次序号以便精确匹配目标发行物。此过程由 `docker pull mysql:8.0.28` 负责处理。 #### 创建挂载卷用于持久存储数据 为了避免容器内部的数据丢失风险,推荐预先定义外部路径供后续步骤关联绑定之用。比如建立名为 `/data/mysql/conf.d`, `/data/mysql/data`, 和 `/data/mysql/logs` 这样的结构化布局,从而实现对配置文件、实例记录及日志条目等资源的有效管理。 #### 编写 my.cnf 自定义参数设定 针对某些特殊场景需求或是优化性能考量,允许用户自行调整内核级别的属性开关或阈值范围。通常情况下会将此类变更保存在一个单独文本档里边,命名为 `my.cnf` 放置于之前提到过的 conf.d 子目录之下。 ```bash cat <<EOF >/data/mysql/conf.d/my.cnf [mysqld] character-set-server=utf8mb4 collation-server=utf8mb4_unicode_ci explicit_defaults_for_timestamp=true max_connections=500 innodb_buffer_pool_size=1G EOF ``` #### 初始化并启动 MySQL 容器实例 一切就绪以后就可以着手创建一个新的运行态实体了。下面给出了一组典型的 CLI 参数组合方式,其中包含了环境变量传递机制(如 MYSQL_ROOT_PASSWORD)、端口转发规则 (-p) 及前述提及的数据卷映射关系 (-v): ```bash docker run --name=mysql8 \ -e MYSQL_ROOT_PASSWORD=root_password \ -p 3306:3306 \ -v /data/mysql/conf.d:/etc/mysql/conf.d \ -v /data/mysql/data:/var/lib/mysql \ -v /data/mysql/logs:/var/log/mysql \ -d mysql:8.0.28 ``` #### 检查 MySQL 容器的状态 确保刚刚启动的服务正在正常运作当中,可通过 `docker ps` 列表观察是否有对应的项存在,同也可以尝试连接进去做一些简单的 SQL 查询测试工作,以此证明整个搭建环节顺利完成。 #### 解决图形化工具无法访问的问题 对于那些习惯依赖 GUI 应用来管理和开发的同学来说,可能会遇到权限不足之类的障碍阻止远程登录行为的发生。此应当检查 SELinux 设置是否过于严格限制了必要的通信活动,必要适当放宽策略或者干脆临切换成 permissive 模式再做评估。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值