linux centos7 3.10+安装mysql8.0.36

网络源


linux操作

先搜索有没有安装低版本的mysql5.7或者和mysql冲突的mariadb

# 因为我们要安装8版本的mysql 所以先搜索有没有安装低版本的mysql5.7或者和mysql冲突的mariadb
rpm -qa|grep -i mysql
rpm -qa|grep -i mariadb

卸载冲突软件 一定要卸载,否则会导致安装mysql失败

# 卸载冲突软件时要加上,上一条搜索出来的软件包名
# 如yum remove mysql57-community-release 或者 yum remove mariadb-libs-5.5.68-1.el7.x86_64
yum remove mariadb
yum remove mysql

安装mysql的依赖包,wget,解压源码包时所用的依赖库

# libaio是mysql的依赖库
yum install libaio
# wget是下载mysql源码包的工具
yum install -y wget

增加一个mysql的user

# 增加一个mysql的user只是mysql用户组的组员,并没有实际的权限,只是为了方便管理
useradd -M -s /sbin/nologin mysql

解压源码包到当前目录

# 找个自己方便管理的地方解压或者使用-C参数指定解压目录
# 如果没有源码包可以使用wget下载
wget https://dev.mysql.com//get/Downloads/MySQL-8.0/mysql-8.0.36-linux-glibc2.12-x86_64.tar.xz
tar -xvJf ./mysql-8.0.36-linux-glibc2.12-x86_64.tar.xz

给mysql改一个简单的名字

# 给mysql改一个简单的名字方便管理
mv mysql-8.0.36-linux-glibc2.12-x86_64.tar.xz mysql8

编辑/etc下的mysql配置文件my.cnf

# 如果前面卸载mariadb时没有备份配置文件可以自己touch一个,自己写
vi /etc/my.cnf

my.cnf配置文件解释如下:

[mysql]
# 默认字符集
default-character-set=utf8mb4
[client]
port       = 3306
socket     = /tmp/mysql.sock
[mysqld]
port       = 3306
server-id  = 3306
user       = mysql
socket     = /tmp/mysql.sock
# 安装目录 改自己的目录
basedir    = /home/mysql8
# 数据存放目录 改自己的目录 不要打开注释
# datadir    = /home/mysql8/data
# innodb数据存放东西 改自己的目录
innodb_data_home_dir      =/home/mysql8
innodb_log_group_home_dir =/home/mysql8
# 日志及进程数据的存放目录
log-error =/var/log/mysql.log
# 进程pid文件 改自己的目录
pid-file  =/home/mysql8/mysql.pid
# 服务端字符集
character-set-server=utf8mb4
lower_case_table_names=1
autocommit =1

# 创建表时使用的默认存储引擎
default_storage_engine = InnoDB

移动到mysql根目录下

cd /home/mysql8/bin

创建mysql的log文件

# 不创建会报找不到的错
touch /var/log/mysql.log

增加日志权限以及mysql根目录的权限

# 没有权限也会报mysql无权写入日志的错
# 将mysql根目录及mysql.log文件权限改为mysql用户组
chown -R mysql:mysql /home/mysql8 && chown -R mysql:mysql /var/log/mysql.log

mysql数据库的data序列化

# 一定要指定配置文件,按照刚刚写好的配置文件启动初始化数据库
# 这里的--initialize-insecure参数是为了跳过密码验证,方便测试
# 如果报错删除mysql根目录下的data文件夹,查询mysql.log解决后再次初始化
mysqld --defaults-file=/etc/my.cnf --basedir=/home/mysql8 --datadir=/home/mysql8/data --user=mysql --initialize-insecure

启动mysql服务

# 这里的绝对路径改成自己的mysql根目录
/home/mysql8/support-files/mysql.server start

登录mysql数据库

# 首次登录无密码需要修改密码及给远程访问权限
./mysql -uroot

mysql sql语句如下:

首次登录需要修改密码

# 给本地连接的用户设置密码
alter user 'root'@'localhost' identified with mysql_native_password by '123456';

# 刷新权限
flush privileges;

数据库远程连接授权

# 使用 mysql database
use mysql;

# 查询user,host字段在userselect user,host from user;

# 创建远程连接用户若不想任何ip都能访问则可以将%改成要访问的ip多个ip用逗号隔开
create user 'root'@'%';

# 授权任何ip可以访问
grant all privileges on *.* to 'root'@'%';

# 改变远程连接用户密码加密方式
alter user 'root'@'%' identified with mysql_native_password by '123456';

# 更改密码有效期为永久
alter user 'root'@'%' identified by '123456' password expire never;

# 刷新权限
flush privileges;

# 退出mysql
exit;

linux操作

增加软连接到命令目录

# 这里的绝对路径改成自己的mysql根目录 链接后可以使用直接使用mysql命令
ln -s /home/mysql8/bin/mysql /usr/bin/mysql

增加mysql服务到开机服务目录

# 使mysql服务可以让systemctl统一管理
cp /home/mysql8/support-files/mysql.service /etc/init.d/mysql

设置自动启动mysql服务

# 启动mysql服务
systemctl start mysql

# 设置mysql服务开机启动
systemctl enable mysql
posted @   穆秋  阅读(298)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
点击右上角即可分享
微信分享提示