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