Centos8上安装Mysql8.X
一、下载Mysql
-
下载地址:https://dev.mysql.com/downloads/mysql/
二、将压缩包通过ftp软件服务器的目标位置:并解压
1、我的是放在:/root/softwares
2、解压为tar文件:xz -dev mysql-8.0.27-linux-glibc2.12-x86_64.tar.xz
3、解压mysql-8.0.27-linux-glibc2.12-x86_64.tar 到 目录 /opt下面,注意不要放在root及其子目录下,会有权限问题。
3.1 解压并移动到 opt 目录下: tar -xvf mysql-8.0.27-linux-glibc2.12-x86_64.tar -C /opt/
3.2 重命名:mv mysql-8.0.27-linux-glibc2.12-x86_64 mysql8
三、配置日志目录及mysql环境变量
1、进入mysql解压后的目录mysql8,并创建存放mysql日志的目录
-
-
- cd /opt/mysql8/
- mkdir data
-
2、配置mysql环境变量
- vim /etc/profile
- MYSQL_HOME=/opt/mysql8/bin
- PATH=$PATH:$MYSQL_HOME
- export MYSQL_HOME PATH
配置完成后重载:source /etc/profile
四、创建mysql用户组及用户
mysql是出于安全考虑,默认拒绝用root账号启动mysql服务。所以我们创建一个mysql用户组和mysql的用户。
- groupadd mysql
- useradd -g mysql mysql
- mysql用户关联并修改权限
五、安装依赖包:
查询是否安装libaio依赖包:yum search libaio
如果没安装,可以用下面命令安装:yum install libaio
六、初始化mysql
初始化mysql:mysqld --user=mysql --basedir=/opt/mysql8 --datadir=/opt/mysql8/data --initialize
注意1:初始化成功之后会有一个临时密码,红色框内的是mysql数据库登录的临时密码,保存备用,每个人安装生成的临时密码不一样。
注意2:如果在解压压缩包的时候,没有移动到opt文件夹下,直接放在root文件夹下,回报权限错误
重点知识2: --initialize和--initialize-insecure区别
--initialize: 会生成一个12位,4种密码复杂度临时管理员密码. 第一次登陆需要修改.
--initialize-insecure:管理员密码为空.
七、启动mysql
sh /opt/mysql8/support-files/mysql.server start
上面启动mysql服务命令是会报错的,因为没有修改mysql的配置文件,报错内容大致如下
修改/opt/mysql8/support-files/mysql.server 配置文件
接下来:
cp /opt/mysql8/support-files/mysql.server /etc/init.d/mysqld
chmod 755 /etc/init.d/mysqld
将mysql服务加到系统服务中
chkconfig --add mysqld
开机自启动
chkconfig mysqld on
八、修改配置文件
这里下载的mysql8.0.27版本并没有这个my.cnf文件,因此直接创建的。
vim /etc/my.cnf
[client] port=3306 socket=/tmp/mysql.sock [mysqld] basedir=/opt/mysql8 datadir=/opt/mysql8/data socket=/tmp/mysql.sock user=mysql port=3306 character_set_server=utf8 # symbolic-links=0 bind-address=0.0.0.0 [mysqld_safe] log-error=/opt/mysql8/data/error.log pid-file=/opt/mysql8/data/mysqld.pid tmpdir=/tmp
然后,授权文件my.cnf
九、mysql启动服务
十、登录mysql
mysql -u root -p
如果报错:
解决方案:sudo ln -s /usr/lib64/libtinfo.so.6.1 /usr/lib64/libtinfo.so.5
十一、修改密码
use mysql
这时候报了一个错:
解决办法:
修改初始密码:alter user 'root'@'localhost' identified by 'Se7eN521';
刷新:flush privileges;
至此,完成mysql8.0.23的安装。
十二、Navicat连接
如果出现这个错误。
解决方法
1、在安装Mysql数据库的主机上登录root用户:
mysql -u root -p
依次执行如下命令:
use mysql;
select host from user where user='root';
可以看到当前主机配置信息为localhost.
2.将Host设置为通配符%
Host列指定了允许用户登录所使用的IP,比如user=root Host=192.168.1.1。这里的意思就是说root用户只能通过192.168.1.1的客户端去访问。
user=root Host=localhost,表示只能通过本机客户端去访问。
而%是个通配符,如果 Host=192.168.1.%,那么就表示只要是IP地址前缀为“192.168.1.”的客户端都可以连接。
如果Host=%,表示所有IP都有连接权限。
注意:在生产环境下不能为了省事将host设置为%,这样做会存在安全问题,具体的设置可以根据生产环境的IP进行设置;
问题二:如果出现下面的问题,是服务器上没有开放mysql的端口号,去服务器的安全组或者防火墙中添加mysql的端口号即可
改好之后,重启一下mysql,即可使用Navicat连接
侯哥语录:我曾经是一个职业教育者,现在是一个自由开发者。我希望我的分享可以和更多人一起进步。分享一段我喜欢的话给大家:"我所理解的自由不是想干什么就干什么,而是想不干什么就不干什么。当你还没有能力说不得时候,就努力让自己变得强大,拥有说不得权利。"
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构