服务器中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

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

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

步骤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 配置文件(位置在根目录):
服务器中Linux(CentOS7.6)安装并启动mysql-8.0.18-el7-x86_64.tar.gz + 问题错误集_第2张图片

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
服务器中Linux(CentOS7.6)安装并启动mysql-8.0.18-el7-x86_64.tar.gz + 问题错误集_第3张图片

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

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博客

你可能感兴趣的:(Linux,服务器,linux,mysql)