服务器中Linux(CentOS7.6)安装并启动mysql-8.0.18-el7-x86_64.tar.gz + 问题错误集

安装前提: 

既然到服务器这茬了,肯定要知道Xshell和Xftp这类工具和一些linux的简单指令这样就能看懂这个文章了。
下载mysql安装包(七百多M),因为服务器下载速度太慢,我直接去官网下载然后用Xftp上传到服务器里的,这可比服务器下载快太多了。
https://cdn.mysql.com/archives/mysql-8.0/mysql-8.0.18-el7-x86_64.tar.gzhttps://cdn.mysql.com/archives/mysql-8.0/mysql-8.0.18-el7-x86_64.tar.gz当然也可以直接在服务器中下载(你们随意):
注:我这里是使用安装包导入的方式进行安装,步骤可能和在线下载安装的有些不同。
输入指令:
以下是在线下载mysql数据包

wget https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.18-el7-x86_64.tar.gz

 步骤1: ---------------------------------------------------------------------------------------------------------------------
安装包传好了当然是解压咯,输入指令走起
输入指令:

tar -xzvf mysql-8.0.18-el7-x86_64.tar.gz

注:以下没贴效果图的直接运行指令即可

步骤2: --------------------------------------------------------------------------------------------------------------
安装依赖项(Mysql依赖于libaio库

sudo yum install -y libaio

步骤3:---------------------------------------------------------------------------------------------------------------
创建 MySQL 用户和组:

sudo groupadd mysql
sudo useradd -r -g mysql -s /bin/false mysql

步骤4:---------------------------------------------------------------------------------------------------------------
将解压缩后的 MySQL 目录移动到 /usr/local 目录下,并更改所有者和组:

sudo mv mysql-8.0.18-el7-x86_64 /usr/local/mysql
sudo chown -R mysql:mysql /usr/local/mysql

 

注:为啥要费事移到另一个文件夹中呢?
原因: 

将 MySQL 目录移动到 /usr/local 目录下并更改所有者和组是为了使其符合 Linux 系统的文件组织结构规范。

在 Linux 系统中,/usr/local 是系统管理员通常用来存放手动安装的软件包的目录。因此,将 MySQL 目录移动到 /usr/local 目录下有助于使其与其他已安装软件包保持一致,并且可以方便地找到它。

另外,更改 MySQL 目录的所有者和组也是很重要的,这样可以确保只有指定的用户和组才能对其进行访问和操作,从而提高了系统的安全性。需要注意的是,在执行更改所有者和组之前,必须先创建 MySQL 用户和组。

步骤5:---------------------------------------------------------------------------------------------------------------------
在 /etc 目录下创建 my.cnf 配置文件(位置在根目录):

sudo vi /etc/my.cnf

在 my.cnf 文件中添加以下内容:

[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock

[mysql_safe]
log-error=/var/log/mariadb/mariadb.log
pid-file=/var/run/mariadb/mariadb.pid

[client]
socket=/var/lib/mysql/mysql.sock

2023.6.21更:
如果有此文件和内容可以忽略该步操作

步骤6:---------------------------------------------------------------------------------------------------------------
初始化 MySQL 数据目录:

cd /usr/local/mysql
sudo bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/var/lib/mysql

注:初始化数据库时使用的是–initialize-insecure 命令,那么就不会出现密码。如果以–initialize初始化数据库,启动时就会出现密码。

步骤7:---------------------------------------------------------------------------------------------------------------------启动 MySQL 服务:

1.将 MySQL 的路径添加到 PATH 环境变量中,才能使用 mysql 命令。假设 MySQL 的二进制文件位于 /usr/local/mysql/bin 目录下,可以使用以下命令将该目录添加到 PATH 环境变量中:

export PATH=$PATH:/usr/local/mysql/bin

2.启动Mysql服务

systemctl start mysql


3.查看3306端口是否被占用

sudo lsof -i:3306

如果被占用会出现如下效果图:

4.查看MySQL服务是否正在运行
 

systemctl status mysqld

  如果成功启动会出现如下效果图,恭喜你成功安装并启动了Mysql

注:当你启动成功时应该会出现以下代码

rver in progress as process 4056
2023-04-20T14:43:18.763347Z 5 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: t.(QvXj<43K8

这个信息表示,在 MySQL 启动过程中,为 root@localhost 用户生成了一个临时密码,即 t.(QvXj<43K8。

您可以使用以下命令登录 MySQL 并修改 root 用户的密码:
 

mysql -u root -p

输入上述命令后,系统会提示您输入密码,输入上述临时密码然后按 Enter 进入 MySQL 控制台。

在 MySQL 控制台中,执行以下命令以修改 root 用户的密码:
 

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'new_password';

其中 new_password 是您要设置的新密码。执行完毕后,您就可以使用新密码登录 MySQL 了。

-----------------------------------------------------------------------------------------
之后可以用 root 用户身份登录到 MySQL:
 

sudo mysql -u root -p

然后,系统会提示你输入 root 用户的密码。输入密码后,按回车键即可登录到 MySQL 服务器。

如果你不是 root 用户,或者希望使用其他 MySQL 用户登录,可以将 -u 参数后面的 root 替换为你想要登录的 MySQL 用户名,例如:
 

sudo mysql -u your_username -p

同样地,系统会提示你输入该用户的密码以进行登录。


重启mysql指令:

sudo systemctl restart mysql

错误集(我单方面碰到并以解决的):
1.在启动的时候报错,报错信息如下:​​​​​​

2023-04-20T14:40:48.538062Z 0 [Warning] [MY-011070] [Server] 'Disabling symbolic links using --skip-symbolic-links (or equivalent) is the default. Consider not using this option as it' is deprecated and will be removed in a future release.
2023-04-20T14:40:48.538145Z 0 [System] [MY-013169] [Server] /usr/local/mysql/bin/mysqld (mysqld 8.0.18) initializing of server in progress as process 4043
2023-04-20T14:40:48.539669Z 0 [ERROR] [MY-010457] [Server] --initialize specified but the data directory has files in it. Aborting.
2023-04-20T14:40:48.539676Z 0 [ERROR] [MY-013236] [Server] The designated data directory /var/lib/mysql/ is unusable. You can remove all files that the server added to it.
2023-04-20T14:40:48.539747Z 0 [ERROR] [MY-010119] [Server] Aborting
2023-04-20T14:40:48.540002Z 0 [System] [MY-010910] [Server] /usr/local/mysql/bin/mysqld: Shutdown complete (mysqld 8.0.18)  MySQL Community Server - GPL.

这是 MySQL 启动时出现的错误信息。根据错误信息,可以看到有以下几个问题:

1--'Disabling symbolic links using --skip-symbolic-links (or equivalent) is the default. Consider not using this option as it' is deprecated and will be removed in a future release.

这个警告信息表示使用 --skip-symbolic-links 选项禁用符号链接是默认的,但该选项已经过时,将在将来的发布版本中被删除。建议不要使用该选项。

2--initialize specified but the data directory has files in it. Aborting.

这个错误信息表示在执行初始化操作时指定的数据目录 /var/lib/mysql/ 中已经存在文件,从而导致初始化失败。您需要手动清空该目录中的所有文件才能继续进行 MySQL 初始化操作。

3--The designated data directory /var/lib/mysql/ is unusable. You can remove all files that the server added to it.

这个错误信息表示指定的数据目录 /var/lib/mysql/ 无法使用。您需要删除服务器添加到该目录中的所有文件以解决此问题。

说白了就是把这个   /var/lib/mysql/   目录里的文件全给删了就行,然后再重新启动。

2.sudo systemctl start mysql没反应

如果执行 sudo systemctl start mysql 命令没有任何反应,可能有以下几种原因:

1.MySQL 服务没有正确安装

如果 MySQL 没有正确地安装,那么执行 sudo systemctl start mysql 命令是不会启动 MySQL 服务的。你需要确保已经正确地安装了 MySQL,并且该服务运行在你的系统上。

2.MySQL 服务没有正确配置

如果 MySQL 没有正确地配置,那么执行 sudo systemctl start mysql 命令同样也无法启动 MySQL 服务。你需要确保已经正确地设置了 MySQL 配置,例如数据库用户名和密码等。

3.端口被占用

如果 MySQL 使用的端口被其他进程占用,那么执行 sudo systemctl start mysql 命令同样也无法启动 MySQL 服务。你可以使用 sudo lsof -i:3306 命令来查找 3306 端口是否被占用。如果该端口已经被占用,则需要终止占用该端口的进程或修改 MySQL 所使用的端口号。

4.MySQL 服务已经在运行

如果 MySQL 服务已经在运行,那么执行 sudo systemctl start mysql 命令是不会有任何反应的。你可以尝试使用 sudo systemctl status mysql 命令来检查 MySQL 服务的运行状态。

3.Unit mysql.service could not be found的解决方法

1、输入find / -name mysql.server
 (这一步的目的是找到mysql.server文件路径)
 注意:若第一步输入了没反应,输入find / -name mysqld
 (找到mysqld文件路径)
2、输入cp 文件路径 /etc/init.d/mysqld
 (把找到的文件移动到init.d目录)
3、输入sudo systemctl start mysql启动

附参考其他大佬作品的链接信息:
CentOS6.5下安装MySql5.7.17_逸笔草草的博客-CSDN博客

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
mysql8安装包以及安装说明,在centeros7下的安装.解压缩后会有两个文件:mysql-8.0.18-1.el7.x86_64.rpm-bundle.tar和mysql8安装说明.txt 1、安装 rpm -i 需要安装的包文件名 举例如下: rpm -i example.rpm 安装 example.rpm 包; rpm -iv example.rpm 安装 example.rpm 包并在安装过程显示正在安装的文件信息; rpm -ivh example.rpm 安装 example.rpm 包并在安装过程显示正在安装的文件信息及安装进度; 2、查看安装完成的软件 rpm -qa | grep mysql mysql-community-libs-5.7.24-1.el7.x86_64 mysql-community-common-5.7.24-1.el7.x86_64 mysql-community-client-5.7.24-1.el7.x86_64 mysql-community-server-5.7.24-1.el7.x86_64 3、卸载软件 rpm -e --nodeps 要卸载的软件包 rpm -e --nodeps mysql-community-libs-5.7.24-1.el7.x86_64 rpm -e --nodeps mysql-community-common-5.7.24-1.el7.x86_64 rpm -e --nodeps mysql-community-client-5.7.24-1.el7.x86_64 rpm -e --nodeps mysql-community-server-5.7.24-1.el7.x86_64 看看系统有没有自带有mysql的东西,有就先删除掉。 查看: find / -name mysql 删除: rm -rf 上边查找到的路径,多个路径用空格隔开 #或者下边一条命令即可 find / -name mysql|xargs rm -rf; mkdir -p /usr/local/mysql8 cd /usr/local/mysql8 ll 将下载的资源包(mysql-8.0.18-1.el7.x86_64.rpm-bundle.tar)上传到 usr/local/mysql8 目录下,并解压 tar -xvf mysql-8.0.18-1.el7.x86_64.rpm-bundle.tar 依次安装 rpm -ivh mysql-community-common-8.0.15-1.el7.x86_64.rpm rpm -ivh mysql-community-libs-8.0.18-1.el7.x86_64.rpm rpm -ivh mysql-community-client-8.0.18-1.el7.x86_64.rpm rpm -ivh mysql-community-server-8.0.18-1.el7.x86_64.rpm 查看已安装资源 rpm -qa | grep mysql groupadd mysql useradd -g mysql mysql mysqld --initialize 初始化 chown mysql:mysql /var/lib/mysql -R 授权 systemctl start mysqld 开启mysql服务 systemctl status mysqld 查看mysql 状态 cat /var/log/mysqld.log | grep password 查看root初始密码 使用root用户登录mysql ,并修改root用户密码 mysql -u root -p #回车之后输入前面的初始密码也就是 XXXXXX(填自己的密码) ALTER USER "root"@"localhost" IDENTIFIED BY "自己的密码"; FLUSH PRIVILEGES; #立即生效 再次用户root 用户登录 输入自己刚刚修改的密码就可以了 远程连接 use mysql; update user set host = '%' where user ='root'; ALTER USER 'root'@'%' IDENTIFIED BY 'password' PASSWORD EXPIRE NEVER; #更改加密方式 ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '自己的密码'; #更新用户密码 (我这里为root )

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值