计算机网络/计算机科学与应用/系统/运维/开发

MySQL8 安装及解决错误

MySQL DBA系统环境的配置

[root@localhost ~]# sysctl -w vm.swappiness=1
vm.swappiness = 1
[root@localhost ~]# echo vm.swappiness=0 >> /etc/sysctl.conf 
[root@localhost ~]# cat /proc/sys/vm/swappiness 
1


1、下载解压缩文件

# wget https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.18-1.el7.x86_64.rpm-bundle.tar
# tar xf mysql-8.0.18-1.el7.x86_64.rpm-bundle.tar


# ls -l 
-rw-r--r--.  1 root   root   684851200 Sep 23  2019 mysql-8.0.18-1.el7.x86_64.rpm-bundle.tar
-rw-r--r--.  1   7155  31415  40104640 Sep 23  2019 mysql-community-client-8.0.18-1.el7.x86_64.rpm
-rw-r--r--.  1   7155  31415    611436 Sep 23  2019 mysql-community-common-8.0.18-1.el7.x86_64.rpm
-rw-r--r--.  1   7155  31415   6915400 Sep 23  2019 mysql-community-devel-8.0.18-1.el7.x86_64.rpm
-rw-r--r--.  1   7155  31415  23683600 Sep 23  2019 mysql-community-embedded-compat-8.0.18-1.el7.x86_64.rpm
-rw-r--r--.  1   7155  31415   3877664 Sep 23  2019 mysql-community-libs-8.0.18-1.el7.x86_64.rpm
-rw-r--r--.  1   7155  31415   1363968 Sep 23  2019 mysql-community-libs-compat-8.0.18-1.el7.x86_64.rpm
-rw-r--r--.  1   7155  31415 450282440 Sep 23  2019 mysql-community-server-8.0.18-1.el7.x86_64.rpm
-rw-r--r--.  1   7155  31415 158001648 Sep 23  2019 mysql-community-test-8.0.18-1.el7.x86_64.rpm


2、创建用户

[root@localhost ~]# groupadd mysql
[root@localhost ~]# useradd -g mysql mysql


3、创建数据目录

[root@localhost ~]# mkdir -p /data/mysql
[root@localhost ~]# chown mysql:mysql /data/mysql


4.检测系统是否自带MySQL

如果系统之前已经安装了MySQL,那么需要确定是否能卸载,以防止误操作。

查看是否已经安装其他版本的MySQL

[root@localhost ~]# rpm -qa|grep mysql


普通卸载

[root@localhost ~]# rpm -qa | grep mysql | xargs rpm -e


# 如果普通卸载报错:存在依赖则可以选择强制卸载

[root@localhost ~]# rpm -qa | grep mysql | xargs rpm -e --nodeps


5.安装RPM包,依赖安装

yum -y install wget cmake gcc gcc-c++ numactl autoconf ncurses ncurses-devel libaio-devel openssl openssl-devel perl-devel perl-JSON.noarch


必要安装(注意顺序)

[root@localhost ~]# rpm -ivh mysql-community-common-8.0.18-1.el7.x86_64.rpm 
[root@localhost ~]# rpm -ivh mysql-community-libs-8.0.18-1.el7.x86_64.rpm 
[root@localhost ~]# rpm -ivh mysql-community-client-8.0.18-1.el7.x86_64.rpm 
[root@localhost ~]# rpm -ivh mysql-community-server-8.0.18-1.el7.x86_64.rpm


非必要安装(注意顺序)

[root@localhost ~]# rpm -ivh mysql-community-libs-compat-8.0.18-1.el7.x86_64.rpm 
[root@localhost ~]# rpm -ivh mysql-community-embedded-compat-8.0.18-1.el7.x86_64.rpm 
[root@localhost ~]# rpm -ivh mysql-community-devel-8.0.18-1.el7.x86_64.rpm 
[root@localhost ~]# rpm -ivh mysql-community-test-8.0.18-1.el7.x86_64.rpm


错误一:

Failed dependencies:
libnuma.so.1()(64bit) is needed by mysql-community-embedded-compat-8.0.25-1.el7.x86_64
libnuma.so.1(libnuma_1.1)(64bit) is needed by mysql-community-embedded-compat-8.0.25-1.el7.x86_64
libnuma.so.1(libnuma_1.2)(64bit) is needed by mysql-community-embedded-compat-8.0.25-1.el7.x86_64


解决办法:

yum -y install numactl


错误二:

Failed dependencies:
pkgconfig(openssl) is needed by mysql-community-devel-8.0.25-1.el7.x86_64

解决办法:

yum install openssl-devel.x86_64 openssl.x86_64 -y


错误三:

Failed dependencies:perl(Data::Dumper) is needed by mysql-community-test-8.0.13-1.el7.x86_64

解决办法:

yum -y install autoconf


错误四:

Failed dependencies:perl(JSON) is needed by mysql-community-test-8.0.13-1.el7.x86_64


解决办法:

yum install perl.x86_64 perl-devel.x86_64 -y yum install perl-JSON.noarch -y


错误五:

error: Failed dependencies:libaio.so.1()(64bit) is needed by MySQL-server-5.5.25a-1.rhel5.x86_64libaio.so.1(LIBAIO_0.1)(64bit) is needed by MySQL-server-5.5.25a-1.rhel5.x86_64
libaio.so.1(LIBAIO_0.4)(64bit) is needed by MySQL-server-5.5.25a-1.rhel5.x86_64


解决办法:

yum install libaio


6、创建配置文件

cat  > /etc/my.cnf <<EOF
[client]
port=3306
socket=/tmp/mysql.sock
[mysqld]
server-id=1
port=3306
user=mysql
max_connections=500
socket=/tmp/mysql.sock
datadir=/data/mysql
pid-file=/data/mysql/mysql.pid
log_error=/data/mysql/mysql-error.log
slow_query_log_file=/data/mysql/mysql-slow.log
EOF


7、初始化

# --initialize-insecure 初始化完毕后,root用户的密码为空

[root@localhost ~]# mysqld --defaults-file=/etc/my.cnf --initialize-insecure
[root@localhost ~]# ls -l /data/mysql
total 155708
-rw-r-----. 1 mysql mysql       56 Sep 21 17:16 auto.cnf
-rw-------. 1 mysql mysql     1676 Sep 21 17:16 ca-key.pem
-rw-r--r--. 1 mysql mysql     1112 Sep 21 17:16 ca.pem
-rw-r--r--. 1 mysql mysql     1112 Sep 21 17:16 client-cert.pem
-rw-------. 1 mysql mysql     1680 Sep 21 17:16 client-key.pem
-rw-r-----. 1 mysql mysql     5907 Sep 21 17:16 ib_buffer_pool
-rw-r-----. 1 mysql mysql 12582912 Sep 21 17:16 ibdata1
-rw-r-----. 1 mysql mysql 50331648 Sep 21 17:16 ib_logfile0
-rw-r-----. 1 mysql mysql 50331648 Sep 21 17:15 ib_logfile1
drwxr-x---. 2 mysql mysql        6 Sep 21 17:16 #innodb_temp
drwxr-x---. 2 mysql mysql      143 Sep 21 17:16 mysql
-rw-r-----. 1 mysql mysql      320 Sep 21 17:16 mysql-error.log
-rw-r-----. 1 mysql mysql 25165824 Sep 21 17:16 mysql.ibd
drwxr-x---. 2 mysql mysql     8192 Sep 21 17:16 performance_schema
-rw-------. 1 mysql mysql     1676 Sep 21 17:16 private_key.pem
-rw-r--r--. 1 mysql mysql      452 Sep 21 17:16 public_key.pem
-rw-r--r--. 1 mysql mysql     1112 Sep 21 17:16 server-cert.pem
-rw-------. 1 mysql mysql     1680 Sep 21 17:16 server-key.pem
drwxr-x---. 2 mysql mysql       28 Sep 21 17:16 sys
-rw-r-----. 1 mysql mysql 10485760 Sep 21 17:16 undo_001
-rw-r-----. 1 mysql mysql 10485760 Sep 21 17:16 undo_002


8.启动和停止MySQL Server

[root@localhost data]# systemctl start mysqld.service


停止MySQL

systemctl stop mysqld.service


查看状态

[root@localhost data]# systemctl status mysqld.service 
● mysqld.service - MySQL Server
   Loaded: loaded (/usr/lib/systemd/system/mysqld.service; enabled; vendor preset: disabled)
   Active: active (running) since Wed 2022-09-21 17:37:14 CST; 8min ago
     Docs: man:mysqld(8)
           http://dev.mysql.com/doc/refman/en/using-systemd.html
  Process: 8084 ExecStartPre=/usr/bin/mysqld_pre_systemd (code=exited, status=0/SUCCESS)
 Main PID: 8114 (mysqld)
   Status: "Server is operational"
    Tasks: 38
   CGroup: /system.slice/mysqld.service
           └─8114 /usr/sbin/mysqld
Sep 21 17:37:11 localhost.localdomain systemd[1]: Starting MySQL Server...
Sep 21 17:37:14 localhost.localdomain systemd[1]: Started MySQL Server.


设置开机启动

systemctl enable mysqld.service


MySQL8 安装结束!

[root@localhost data]# mysql -h 127.0.0.1 -uroot -p
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 8
Server version: 8.0.18 MySQL Community Server - GPL
Copyright (c) 2000, 2019, Oracle and/or its affiliates. All rights reserved.
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> create database test;
Query OK, 1 row affected (0.02 sec)

mysql> use test;
Database changed


读书和赚钱都是一个人最好的修行,前者使人不惑,后者使人不屈,二者结合,便可不困于世,不流于俗

评论

^