中间件 mysql安装

发布于:2024-12-20 ⋅ 阅读:(8) ⋅ 点赞:(0)

1、下载mysql   

Downloads->MySQL Community (GPL) Downloads ->[MySQL Community Server]

MySQL :: Download MySQL Community Server

查看系统版本

[root@localhost mysql]# cat /etc/redhat-release ​ CentOS Linux release 7.9.2009 (Core)

查看硬件架构类型

[root@localhost mysql]# uname -m ​ x86_64

首先查看系统版本

rpm -qa | grep glibc

glibc-devel-2.17-326.el7_9.3.x86_64

glibc-2.17-326.el7_9.3.x86_64

glibc-headers-2.17-326.el7_9.3.x86_64

glibc-common-2.17-326.el7_9.3.x86_64

Select Version: 8.0.40

Select Operating System:Linux-Generic

Select OS Version:Linux-Generic(glibc)(x86,64-bit)

1、下载安装包

 [root@localhost mysql]# wget https://cdn.mysql.com//Downloads/MySQL-8.0/mysql-8.0.40-linux-glibc2.17-x86_64-minimal.tar

查看下载文件安装包:

[root@localhost mysql]# ll
总用量 458972
-rw-r--r--.  1 root  root  469985280 9月  21 02:30 mysql-8.0.40-linux-glibc2.17-x86_64-minimal.tar

解压mysql-8.0.40-linux-glibc2.17-x86_64-minimal.tar 安装包

[root@localhost mysql]# tar -xvf mysql-8.0.40-linux-glibc2.17-x86_64-minimal.tar 
mysql-test-8.0.40-linux-glibc2.17-x86_64-minimal.tar.xz
mysql-8.0.40-linux-glibc2.17-x86_64-minimal.tar.xz
mysql-router-8.0.40-linux-glibc2.17-x86_64-minimal.tar.xz

查看解压文件

[root@localhost mysql]# ll
总用量 917940
drwxr-xr-x. 10 mysql mysql       141 12月 19 10:02 mysql8
-rw-r--r--.  1 root  root  469985280 9月  21 02:30 mysql-8.0.40-linux-glibc2.17-x86_64-minimal.tar
-rw-r--r--.  1  7155 31415  60957800 9月  21 00:57 mysql-8.0.40-linux-glibc2.17-x86_64-minimal.tar.xz
-rw-r--r--.  1  7155 31415   7981904 9月  21 01:41 mysql-router-8.0.40-linux-glibc2.17-x86_64-minimal.tar.xz
-rw-r--r--.  1  7155 31415 401035692 9月  21 02:24 mysql-test-8.0.40-linux-glibc2.17-x86_64-minimal.tar.xz

解压 mysql-8.0.40-linux-glibc2.17-x86_64-minimal.tar.xz

[root@localhost mysql]# tar -xvf mysql-8.0.40-linux-glibc2.17-x86_64-minimal.tar.xz 
mysql-8.0.40-linux-glibc2.17-x86_64-minimal/bin/
mysql-8.0.40-linux-glibc2.17-x86_64-minimal/bin/myisam_ftdump
mysql-8.0.40-linux-glibc2.17-x86_64-minimal/bin/myisamchk
​
  • 卸载mariadb

在 Linux 系统中,如果已经安装了 MariaDB,并且想要安装 MySQL,需要先卸载 MariaDB 以避免冲突。

#先列出MariaDB相关的包:
[root@localhost bin]# rpm -qa | grep mariadb
 mariadb-libs-6.0-2.el7.x86_64
 mariadb-server-5.5.56-2.el7.x86_64

卸载列出的包:

rpm -e --nodeps  mariadb-libs-6.0-2.el7.x86_64
rpm -e --nodeps  mariadb-server-5.5.56-2.el7.x86_64

检查是否卸载成功:(无任何返回值,则表示卸载成功)

rpm -qa | grep mariadb

2、查看文件并且重名文件夹名

[root@localhost mysql]# ll
总用量 917940
drwxr-xr-x. 9 root root        129 12月 19 09:52 mysql-8.0.40-linux-glibc2.17-x86_64-minimal
​
[root@localhost mysql]# mv mysql-8.0.40-linux-glibc2.17-x86_64-minimal  mysql8
​

cd到mysql解压后的目录中:

[root@localhost mysql]# cd /home/tools/mysql/mysql8

3、创建存储初始化数据目录

[root@localhost mysql8]# mkdir data
​
[root@localhost mysql8]# ll
总用量 268
drwxr-xr-x.  2 7161 31415   4096 9月  18 19:35 bin
drwxr-xr-x.  2 root root       6 12月 18 17:42 data
drwxr-xr-x.  2 7161 31415     38 9月  18 19:35 docs
drwxr-xr-x.  3 7161 31415   4096 9月  18 19:35 include
drwxr-xr-x.  6 7161 31415    201 9月  18 19:35 lib
-rw-r--r--.  1 7161 31415 257478 9月  18 18:08 LICENSE
drwxr-xr-x.  4 7161 31415     30 9月  18 19:35 man
-rw-r--r--.  1 7161 31415    666 9月  18 18:08 README
drwxr-xr-x. 28 7161 31415   4096 9月  18 19:35 share
drwxr-xr-x.  2 7161 31415     77 9月  18 19:35 support-files

4、创建 MySQL 用户和用户组并设置目录权限

创建用户和用户组:

groupadd mysql
useradd -g mysql mysql

groupadd mysql:创建一个名为 mysql 的用户组,以便于管理 MySQL 用户。

useradd -g mysql mysql:创建一个名为 mysql 的用户,并将其添加到 mysql 用户组,以提高安全性。

设置目录权限:

​
[root@localhost mysql8]#  chown -R mysql:mysql /home/tools/mysql/mysql8
[root@localhost mysql8]#  chmod 750 /home/tools/mysql/mysql8/data

chown -R mysql:mysql /home/tools/mysql/mysql8:递归地将 MySQL 安装目录的所有权更改为 mysql 用户和用户组。

chmod 750 /home/tools/mysql/mysql8/data:设置数据目录的权限为 750,表示所有者有读、写、执行权限,组用户有读和执行权限,其他用户无权限。

5、创建配置文件

MySQL所需的配置文件放在/etc下叫my.cnf(原本没有,直接创建)

[root@localhost mysql8] vim /etc/my.cnf
[mysqld]
bind-address=0.0.0.0  # 允许从任何 IP 地址连接
port=3306              # MySQL 默认端口
user=mysql             # 运行 MySQL 的用户
basedir=/home/tools/mysql/mysql8  # MySQL 安装根目录
datadir=/home/tools/mysql/mysql8/data  # 数据存储目录
​
[mysqld_safe]
socket=/home/tools/mysql/mysql8/data/tmp/mysql.sock  # socket 文件路径
log-error=/home/tools/mysql/mysql8/data/error/mysql.log  # 错误日志路径
pid-file=/home/tools/mysql/mysql8/data/RR.pid  # 进程 ID 文件路径
​
character_set_server=utf8mb4  # 设置服务器字符集为 utf8mb4
symbolic-links=0              # 是否支持符号链接
explicit_defaults_for_timestamp=ON  # 时间戳处理模式
sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION  # SQL 模式设置
lower_case_table_names=1      # 忽略表名大小写
​
[client]
default-character-set=utf8mb4   # 客户端默认字符集
socket=/home/tools/mysql/mysql8/data/tmp/mysql.sock  # 客户端 socket 文件路径
​
                                                                                  

6、创建mysql服务

将 MySQL 服务脚本复制到 /etc/init.d/

cp -a /home/tools/mysql/mysql8/support-files/mysql.server /etc/init.d/mysql

授权并添加服务:

  • 给服务脚本执行权限

chmod +x /etc/init.d/mysql

  • 将 MySQL 服务添加到系统管理工具中

chkconfig --add mysql

7、初始化mysql

 ./mysqld --user=mysql --basedir=/home/tools/mysql/mysql8 --datadir=/home/tools/mysql/mysql8/data/ --initialize
 
2024-12-19T02:02:42.439684Z 0 [System] [MY-013169] [Server] /home/tools/mysql/mysql8/bin/mysqld (mysqld 8.0.40) initializing of server in progress as process 15266
2024-12-19T02:02:42.520016Z 1 [System] [MY-013576] [InnoDB] InnoDB initialization has started.
2024-12-19T02:02:44.027181Z 1 [System] [MY-013577] [InnoDB] InnoDB initialization has ended.
2024-12-19T02:02:48.155762Z 6 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: 1zN*IUOpc#qs
​

./mysqld:指向 MySQL 服务器的可执行文件。通常位于 MySQL 安装目录中的 bin 子目录下,比如 /usr/local/mysql/mysql8/bin/mysqld。

--user=mysql:指定以 mysql 用户的身份运行 MySQL 服务器。这是为了确保 MySQL 进程具有适当的文件权限,特别是对于数据目录的读写权限。

--basedir=/usr/local/mysql/mysql8:指定 MySQL 的安装根目录。MySQL 将根据此路径找到二进制文件和其他相关资源(如 share 目录中的支持文件)。

--datadir=/usr/local/mysql/mysql8/data/:指定 MySQL 的数据存储目录。在初始化过程中,MySQL 会在此目录下创建系统数据库和必要的文件,以便 MySQL 服务能够正常运行。

--initialize:执行初始化操作。这会在指定的数据目录中创建 MySQL 系统表和其他必要的系统文件,此外还会生成一个随机的 root 初始密码。注意,该操作只能在数据目录为空时运行。

6、创建MySQL数据文件

创建用于存储 MySQL 数据的目录,包括数据文件、错误日志和临时文件目录,这些目录能够管理和故障排查

mkdir -p /home/tools/mysql/mysql-8.0.40/data/error
chown -R mysql:mysql /home/tools/mysql/mysql-8.0.40/data/error
chmod 755 /home/tools/mysql/mysql-8.0.40/data/error
​
touch /home/tools/mysql/mysql-8.0.40/data/error/mysql.log
chown mysql:mysql /home/tools/mysql/mysql-8.0.40/data/error/mysql.log
chmod 644 /home/tools/mysql/mysql-8.0.40/data/error/mysql.log
​
chown -R mysql:mysql /home/tools/mysql/mysql-8.0.40/data
chmod -R 755 /home/tools/mysql/mysql-8.0.40/data
​
mkdir -p /home/tools/mysql/mysql-8.0.40/data/tmp
chown -R mysql:mysql /home/tools/mysql/mysql-8.0.40/data/tmp
chmod 755 /home/tools/mysql/mysql-8.0.40/data/tmp

7、启动mysql

[root@localhost data]# service mysql start
Starting MySQL.. SUCCESS! 
​
#查看mysql进程
[root@localhost data]# ps -ef|grep mysql
root     30069     1  0 10:08 pts/3    00:00:00 /bin/sh /home/tools/mysql/mysql8/bin/mysqld_safe --datadir=/home/tools/mysql/mysql8/data --pid-file=/home/tools/mysql/mysql8/data/localhost.localdomain.pid
mysql    30349 30069  5 10:08 pts/3    00:00:01 /home/tools/mysql/mysql8/bin/mysqld --basedir=/home/tools/mysql/mysql8 --datadir=/home/tools/mysql/mysql8/data --plugin-dir=/home/tools/mysql/mysql8/lib/plugin --user=mysql --log-error=/home/tools/mysql/mysql8/data/error/mysql.log --pid-file=/home/tools/mysql/mysql8/data/localhost.localdomain.pid --socket=/home/tools/mysql/mysql8/data/tmp/mysql.sock --port=3306
root     31125 14690  0 10:08 pts/3    00:00:00 grep --color=auto mysql
​

8、修改数据库密码

[root@localhost data]# mysql -uroot -p
#将刚才初始化的密码输入进去 1zN*IUOpc#qs
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 8
Server version: 8.0.40
Copyright (c) 2000, 2024, Oracle and/or its affiliates.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
​
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY '123456';
Query OK, 0 rows affected (0.01 sec)
​
#刷新一下权限
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)
​
#退出
mysql> quit
​
​
-bash: mysql: 未找到命令
​
#解决方案:
vim /etc/profile或者 su - mysql 
#添加环境变量
    export PATH=$PATH:/usr/local/mysql/bin
#然后执行:
source /etc/profile命令,使环境变量配置生效。之后再尝试输入 mysql -uroot -p 命令,看是否能正常运行。
​
​

重启数据库

 [root@localhost bin]# service mysql restart
 Shutting down MySQL.. SUCCESS! 
 Starting MySQL.. SUCCESS! 

9、设置远程登录

#新密码登录
[root@localhost bin]# mysql -uroot -p
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 8
Server version: 8.0.40 MySQL Community Server - GPL
​
Copyright (c) 2000, 2024, Oracle and/or its affiliates.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
​
#查看数据库
mysql> show databases
    -> ;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| sys                |
+--------------------+
4 rows in set (0.01 sec)
​
#user 表在mysql库中,先进mysql
mysql> use mysql;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A
Database changed
​
#远程登录设置:更新 MySQL 数据库中 mysql 库的 user 表,将 root 用户的 host 字段设置为 %,意味着 root 用户可以从任何主机连接到 MySQL 服务。% 是 MySQL 中的通配符,表示任何 IP 地址。
mysql> UPDATE user SET host='%' WHERE user='root';
Query OK, 1 row affected (0.01 sec)
Rows matched: 1  Changed: 1  Warnings: 0
#刷新一下权限
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)
​
#退出
mysql> exit
​
​

重启数据库

[root@localhost bin]# service mysql restart
Shutting down MySQL.... SUCCESS! 
Starting MySQL.. SUCCESS! 

9、添加防火墙

​
[root@localhost bin]# firewall-cmd --zone=public --add-port=3306/tcp --permanent
Warning: ALREADY_ENABLED: 3306:tcp
success
[root@localhost bin]# firewall-cmd --reload
success
[root@localhost bin]# firewall-cmd --zone=public --query-port=3306/tcp
yes

10、远程验证

11、维护命令

[root@localhost bin]# service mysql stop
Shutting down MySQL.. SUCCESS! 
[root@localhost bin]# service mysql start
Starting MySQL.. SUCCESS! 

12、卸载重装

1.查询本机安装的mysql rpm -qa |grep -i mysql

2.使用 yum remove …删除每一个安装 删除后再使用 rpm -qa |grep -i mysql 进行验证

3.查找mysql相关目录 find / -name mysql

4.对这些目录一个个的进行删除 rm -rf

5.删除/etc/my.cnf 文件 rm -rf /etc/my.cnf

删除 /var/log/mysql/mysqld.log文件 rm -rf /var/log/mysql/mysqld.log

6.卸载mariadb

在 Linux 系统中,如果已经安装了 MariaDB,并且想要安装 MySQL,需要先卸载 MariaDB 以避免冲突。

#先列出MariaDB相关的包:
[root@localhost bin]# rpm -qa | grep mariadb
 mariadb-libs-6.0-2.el7.x86_64
 mariadb-server-5.5.56-2.el7.x86_64

卸载列出的包:

rpm -e --nodeps  mariadb-libs-6.0-2.el7.x86_64
rpm -e --nodeps  mariadb-server-5.5.56-2.el7.x86_64

检查是否卸载成功:(无任何返回值,则表示卸载成功)

rpm -qa | grep mariadb

参考链接:

Linux安装MySQL8.0.40详情(保姆级教程)-CSDN博客

【linux彻底卸载mysql8.0(亲测可用)】_linux卸载mysql8.0-CSDN博客