CentOS8上指定目录安装mysql8.0.30及使用systemctl启动

这篇文章主要是针对新手的,所以写的比较详细,并且根据自己在安装时出现的情况以及如何对应解决。

  1. 下载mysql安装包

安装包可以到MySQL官网去获取下载链接:https://dev.mysql.com/downloads/mysql/ ;

请根据自己的系统下载对应版本,如果是64位就下载64位版本。

MySQL 版本

wget https://cdn.mysql.com//Downloads/MySQL-8.0/mysql-8.0.30-linux-glibc2.12-x86_64.tar.xz

下载mysql

2.解压版本到指定目录

首先创建新建一个文件夹,如我把新建的文件夹放在/opt目录下

mkdir  /opt/mydata

然后把下载下来的版本解压到该创建的文件夹下

tar  -xvf mysql-8.0.30-linux-glibc2.12-x86_64.tar.xz -C  /opt/mydata

解压安装包到指定目录

3.更改文件名称为mysql

解压在mydata目录下的文件夹名是:mysql-8.0.30-linux-glibc2.12-x86_64

cd /opt/mydata
mv  mysql-8.0.30-linux-glibc2.12-x86_64  mysql

4.添加用户组 、添加用户到用户组并设置密码

groupadd mysql
useradd -g mysql mysql
passwd mysql
设置你的密码

添加用户组并设置密码

5.创建mysql数据存储文件夹并赋予权限

mkdir -p /opt/mydata/mysql/data
chown -R mysql.mysql /data/mysql

6.初始化mysql

cd /opt/mydata/mysql/bin
./mysqld --user=mysql --basedir=/opt/mydata/mysql --datadir=/opt/mydata/mysql/data/ --initialize --lower-case-table-names=1
//初始化之后会生成临时密码由大小写字母符号及数字组成,复制出来到文本文档中,后面会用到

初始化mysql

7.创建mysql配置文件

创建my.cnf文件

touch /opt/mydata/mysql/my.cnf

编辑文件:

vim /opt/mydata/mysql/my.cnf

[mysqld]
user=mysql
#设置mysql的安装目录
basedir=/opt/mydata/mysql/
#设置mysql数据库的数据的存放目录
datadir=/opt/mydata//mysql/data
# 设置客户端默认字符集
character-set-server=utf8mb4
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
# 设置是否区分大小写(初始化后此参数在这里也必须存在)
lower_case_table_names=1
# 默认使用“mysql_native_password”插件认证 
default_authentication_plugin=mysql_native_password
socket=/tmp/mysql.sock
server_id=6
port=3306
 
[mysql]
socket=/tmp/mysql.sock

8.创建systemctl

touch /etc/systemd/system/mysqld.service

编辑

vim /etc/systemd/system/mysqld.service

//以下为mysqld.service内容
[Unit]
Description=MySQL Server
Documentation=mysqld.service
After=network.target
After=syslog.target
 
[Install]
WantedBy=multi-user.target
 
[Service]
User=mysql
Group=mysql
ExecStart=/opt/mydata/mysql/bin/mysqld --defaults-file=/opt/mydata/mysql/my.cnf
LimitNOFILE = 5000

9.启动mysql服务

systemctl start mysqld.service

10.登录mysql

/opt/mydata/mysql/bin/mysql -u root -p
#输入上面设定的密码

此时这里会出错:/opt/mydata/mysql/bin/mysql: error while loading shared libraries: libtinfo.so.5: cannot open shared object file: No such file or directory

解决方法:

sudo ln -s /usr/lib64/libtinfo.so.6.1 /usr/lib64/libtinfo.so.5

输入这个命令后又会出错:Failed to search for file: cannot update repo 'appstream': Cannot prepare internal mirrorlist: No URLs in mirrorlist

这是因为Centos8于2021年年底停止了服务,使用yum源安装时候,就会报错,这时我们需要修改yum源。

解决方法:

cd /etc/yum.repos.d/

sed -i 's/mirrorlist/#mirrorlist/g' /etc/yum.repos.d/CentOS-*
sed -i 's|#baseurl=http://mirror.centos.org|baseurl=http://vault.centos.org|g' /etc/yum.repos.d/CentOS-*

# 如果已经安装了wget就不需要这一步
yum install wget –y
# 更新yum源为阿里源
wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-vault-8.5.2111.repo

yum clean all

yum makecache
# 验证
yum install -y vim

然后即可连接成功,如果忘记mysql的root密码怎么办?

可以直接更改my.cnf文件,重启mysql服务

service mysqld restart

然后输入/opt/mydata/mysql/bin/mysql -u root -p,不需要输入密码,直接按Enter键即可登录。

vim /opt/mydata/mysql/my.cnf
#找到[mysqld],在最后一行添加skip-grant-tables,按esc,再按: 输入wq 回车,重启mysql服务

root忘记密码

11.修改密码

如果设置了skip-grant-tables ,更改密码,

use mysql;//选择数据库
//update user set Password=Password('你的密码') where User='root';
update user set authentication_string='' where user='root'; //mysql8.0修改
flush privileges; //刷新权限

ALTER USER 'root'@'localhost' IDENTIFIED BY '新密码';
//修改为远程访问
update user set host='%' where user='root';
flush privileges;
exit
//重启服务service mysqld restart
//用新密码即可登录

登录数据库后修改密码:

#如果你设定了不需要密码,请编辑删除该设置,然后重启mysql服务
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '你的密码';
//切换数据库
use mysql;
//修改为远程访问
update user set host='%' where user='root';
//刷新权限
flush privileges;

至此MYSQL在CentOS8上成功安装。

展开阅读全文

页面更新:2024-06-08

标签:目录   用户组   初始化   文件夹   权限   编辑   密码   版本   数据库   文件

1 2 3 4 5

上滑加载更多 ↓
推荐阅读:
友情链接:
更多:

本站资料均由网友自行发布提供,仅用于学习交流。如有版权问题,请与我联系,QQ:4156828  

© CopyRight 2020-2024 All Rights Reserved. Powered By 71396.com 闽ICP备11008920号-4
闽公网安备35020302034903号

Top