一、安装前准备

1、检查是否已经安装过mysql,执行命令
rpm -qa | grep mysql
如果已存在,则执行删除命令 后边为Mysql目录
rpm -e --nodeps mysql-xxxx

2、查询所有Mysql对应的文件夹
whereis mysqlm
find / -name mysql

删除相关目录或文件
rm -rf /usr/bin/mysql /usr/include/mysql /data/mysql /data/mysql/mysql 

验证是否删除完毕
whereis mysqlm
find / -name mysql

3、检查mysql用户组和用户是否存在,如果没有,则创建
cat /etc/group | grep mysql
cat /etc/passwd |grep mysql
groupadd mysql
useradd -r -g mysql mysql

二、yum安装

1、yum install mysql

2、yum install mysql-server   #报错如下
Last metadata expiration check: 0:25:55 ago on Mon 21 Feb 2022 10:27:14 AM CST.
No match for argument: mysql-server
Error: Unable to find a match: mysql-server

#原因:CentOS7自带有MariaDB而不是MySQL,MariaDB和MySQL一样也是开元的数据库
#解决办法:如果必须要安装MySQL,首先必须添加mysql社区repo,执行命令:
sudo rpm -Uvh http://dev.mysql.com/get/mysql-community-release-el7-5.noarch.rpm

Retrieving http://dev.mysql.com/get/mysql-community-release-el7-5.noarch.rpm
Preparing...                          ################################# [100%]
Updating / installing...
   1:mysql-community-release-el7-5    ################################# [100%]
   
# 执行完后,则继续执行:
yum install mysql-server 

3、yum install mysql-devel

4、yum install -y mariadb-server

三、启动

1、
mysql
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)


修改 /etc/my.cnf
#添加
[client]
port=3306
socket=/var/lib/mysql/mysql.sock

user=mysql

2、
#service mysqld start# 运行卡住
Redirecting to /bin/systemctl start mysqld.service
^C   

service mysqld status
systemctl status mysqld.service
● mysqld.service - MySQL Community Server
   Loaded: loaded (/usr/lib/systemd/system/mysqld.service; enabled; vendor preset: disabled)
   Active: activating (start-post) since Mon 2022-02-21 14:05:51 CST; 6min ago
  Process: 63686 ExecStart=/usr/bin/mysqld_safe --basedir=/usr (code=exited, status=0/SUCCESS)
  Process: 63671 ExecStartPre=/usr/bin/mysql-systemd-start pre (code=exited, status=0/SUCCESS)
 Main PID: 63686 (code=exited, status=0/SUCCESS);         : 63687 (mysql-systemd-s)
    Tasks: 2
   Memory: 17.6M
   CGroup: /system.slice/mysqld.service
           └─control
             ├─63687 /bin/bash /usr/bin/mysql-systemd-start post
             └─69856 sleep 1

Feb 21 14:05:51 xxx systemd[1]: Starting MySQL Community Server...
Feb 21 14:05:51 xxx mysqld_safe[63686]: 220221 14:05:51 mysqld_safe Logging to '/var/log/mariadb/mariadb.log'.
Feb 21 14:05:51 xxx mysqld_safe[63686]: 220221 14:05:51 mysqld_safe Starting mysqld daemon with databases from /var/lib/mysql

2.1、
# 查看/var/log/mariadb/mariadb.log

2022-02-21 14:34:29 92642 [Note] Plugin 'FEDERATED' is disabled.
/usr/sbin/mysqld: Table 'mysql.plugin' doesn't exist
2022-02-21 14:34:29 92642 [ERROR] Can't open the mysql.plugin table. Please run mysql_upgrade to create it.

#解决办法:
/usr/bin/mysql_install_db --user=mysql

Installing MySQL system tables...2022-02-21 14:38:39 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).
2022-02-21 14:38:39 0 [Note] Ignoring --secure-file-priv value as server is running with --bootstrap.
2022-02-21 14:38:39 0 [Note] /usr/sbin/mysqld (mysqld 5.6.51) starting as process 96247 ...
2022-02-21 14:38:39 96247 [Note] InnoDB: Using atomics to ref count buffer pool pages
2022-02-21 14:38:39 96247 [Note] InnoDB: The InnoDB memory heap is disabled
2022-02-21 14:38:39 96247 [Note] InnoDB: Mutexes and rw_locks use GCC atomic builtins
2022-02-21 14:38:39 96247 [Note] InnoDB: Memory barrier is not used
2022-02-21 14:38:39 96247 [Note] InnoDB: Compressed tables use zlib 1.2.11
2022-02-21 14:38:39 96247 [Note] InnoDB: Using Linux native AIO
2022-02-21 14:38:39 96247 [Note] InnoDB: Using CPU crc32 instructions
2022-02-21 14:38:39 96247 [Note] InnoDB: Initializing buffer pool, size = 128.0M
2022-02-21 14:38:39 96247 [Note] InnoDB: Completed initialization of buffer pool
2022-02-21 14:38:39 96247 [Note] InnoDB: Highest supported file format is Barracuda.
2022-02-21 14:38:39 96247 [Note] InnoDB: 128 rollback segment(s) are active.
2022-02-21 14:38:39 96247 [Note] InnoDB: Waiting for purge to start
2022-02-21 14:38:39 96247 [Note] InnoDB: 5.6.51 started; log sequence number 1600627
2022-02-21 14:38:39 96247 [Note] RSA private key file not found: /var/lib/mysql//private_key.pem. Some authentication plugins will not work.
2022-02-21 14:38:39 96247 [Note] RSA public key file not found: /var/lib/mysql//public_key.pem. Some authentication plugins will not work.
2022-02-21 14:38:39 96247 [Note] Binlog end
2022-02-21 14:38:39 96247 [Note] InnoDB: FTS optimize thread exiting.
2022-02-21 14:38:39 96247 [Note] InnoDB: Starting shutdown...
2022-02-21 14:38:41 96247 [Note] InnoDB: Shutdown completed; log sequence number 1626007
OK

Filling help tables...2022-02-21 14:38:41 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).
2022-02-21 14:38:41 0 [Note] Ignoring --secure-file-priv value as server is running with --bootstrap.
2022-02-21 14:38:41 0 [Note] /usr/sbin/mysqld (mysqld 5.6.51) starting as process 96282 ...
2022-02-21 14:38:41 96282 [Note] InnoDB: Using atomics to ref count buffer pool pages
2022-02-21 14:38:41 96282 [Note] InnoDB: The InnoDB memory heap is disabled
2022-02-21 14:38:41 96282 [Note] InnoDB: Mutexes and rw_locks use GCC atomic builtins
2022-02-21 14:38:41 96282 [Note] InnoDB: Memory barrier is not used
2022-02-21 14:38:41 96282 [Note] InnoDB: Compressed tables use zlib 1.2.11
2022-02-21 14:38:41 96282 [Note] InnoDB: Using Linux native AIO
2022-02-21 14:38:41 96282 [Note] InnoDB: Using CPU crc32 instructions
2022-02-21 14:38:41 96282 [Note] InnoDB: Initializing buffer pool, size = 128.0M
2022-02-21 14:38:41 96282 [Note] InnoDB: Completed initialization of buffer pool
2022-02-21 14:38:41 96282 [Note] InnoDB: Highest supported file format is Barracuda.
2022-02-21 14:38:41 96282 [Note] InnoDB: 128 rollback segment(s) are active.
2022-02-21 14:38:41 96282 [Note] InnoDB: Waiting for purge to start
2022-02-21 14:38:41 96282 [Note] InnoDB: 5.6.51 started; log sequence number 1626007
2022-02-21 14:38:41 96282 [Note] RSA private key file not found: /var/lib/mysql//private_key.pem. Some authentication plugins will not work.
2022-02-21 14:38:41 96282 [Note] RSA public key file not found: /var/lib/mysql//public_key.pem. Some authentication plugins will not work.
2022-02-21 14:38:41 96282 [Note] Binlog end
2022-02-21 14:38:41 96282 [Note] InnoDB: FTS optimize thread exiting.
2022-02-21 14:38:41 96282 [Note] InnoDB: Starting shutdown...
2022-02-21 14:38:43 96282 [Note] InnoDB: Shutdown completed; log sequence number 1626017
OK

To start mysqld at boot time you have to copy
support-files/mysql.server to the right place for your system

PLEASE REMEMBER TO SET A PASSWORD FOR THE MySQL root USER !
To do so, start the server, then issue the following commands:

  /usr/bin/mysqladmin -u root password 'new-password'
  /usr/bin/mysqladmin -u root -h docker-ce011162004053.nt12 password 'new-password'

Alternatively you can run:

  /usr/bin/mysql_secure_installation

which will also give you the option of removing the test
databases and anonymous user created by default.  This is
strongly recommended for production servers.

See the manual for more instructions.

You can start the MySQL daemon with:

  cd /usr ; /usr/bin/mysqld_safe &

You can test the MySQL daemon with mysql-test-run.pl

  cd mysql-test ; perl mysql-test-run.pl

Please report any problems at http://bugs.mysql.com/

The latest information about MySQL is available on the web at

  http://www.mysql.com

Support MySQL by buying support/licenses at http://shop.mysql.com

New default config file was created as /usr/my.cnf and
will be used by default by the server when you start it.
You may edit this file to change server settings

WARNING: Default config file /etc/my.cnf exists on the system
This file will be read by default by the MySQL server
If you do not want to use this, either remove it, or use the
--defaults-file argument to mysqld_safe when starting the server

2.2、
#mariadb.log中另一个报错
Can't start server: can't check PID filepath: No such file or directory
220221 14:34:30 mysqld_safe mysqld from pid file /var/run/mariadb/mariadb.pid ended

解决办法:
mkdir -p /var/run/mariadb/
chown -R mysql:mysql /var/run/mariadb/


service mysql start  # 正常
Redirecting to /bin/systemctl start mysql.service

service mysql status  # 正常
Redirecting to /bin/systemctl status mysql.service
● mysqld.service - MySQL Community Server
   Loaded: loaded (/usr/lib/systemd/system/mysqld.service; enabled; vendor preset: disabled)
   Active: active (running) since Mon 2022-02-21 14:54:13 CST; 31min ago
  Process: 112292 ExecStartPost=/usr/bin/mysql-systemd-start post (code=exited, status=0/SUCCESS)
  Process: 112276 ExecStartPre=/usr/bin/mysql-systemd-start pre (code=exited, status=0/SUCCESS)
 Main PID: 112291 (mysqld_safe)
    Tasks: 23
   Memory: 119.3M
   CGroup: /system.slice/mysqld.service
           ├─112291 /bin/sh /usr/bin/mysqld_safe --basedir=/usr
           └─112457 /usr/sbin/mysqld --basedir=/usr --datadir=/var/lib/mysql --plugin-dir=/usr/lib64/mysql/plugin --log-error=/var/log/mariadb/mariadb.log --pid-file=/var/run/mariadb/mariadb.pid --socket=/var/lib/mysql/mysql.sock

Feb 21 14:54:12 xxx systemd[1]: Starting MySQL Community Server...
Feb 21 14:54:12 xxx mysqld_safe[112291]: 220221 14:54:12 mysqld_safe Logging to '/var/log/mariadb/mariadb.log'.
Feb 21 14:54:12 xxx mysqld_safe[112291]: 220221 14:54:12 mysqld_safe Starting mysqld daemon with databases from /var/lib/mysql

mysql  # 正常进入
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 2
Server version: 5.6.51 MySQL Community Server (GPL)

Copyright (c) 2000, 2021, 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.

3、
mysqladmin -u root password   #设置密码


四、另一种方法安装

4.1、安装mysql

yum -y install mariadb  mariadb-devel  mariadb-server

4.2、启动mysql 服务

systemctl start mariadb.service

4.3、设置密码

#mysql
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 5
Server version: 5.5.68-MariaDB MariaDB Server

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
MariaDB [(none)]> 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
MariaDB [mysql]> select host,user from mysql.user;
+-----------------------------+------+
| host                        | user |
+-----------------------------+------+
| 127.0.0.1                   | root |
| ::1                         | root |
| xxx                  |      |
| xxx                         | root |
| localhost                   |      |
| localhost                   | root |
+-----------------------------+------+
6 rows in set (0.00 sec)

MariaDB [mysql]> select user();
+----------------+
| user()         |
+----------------+
| root@localhost |
+----------------+

MariaDB [mysql]> UPDATE user SET password=PASSWORD('xxxxx') WHERE user='root';
Query OK, 4 rows affected (0.00 sec)
Rows matched: 4  Changed: 4  Warnings: 0

MariaDB [mysql]> flush privileges;
Query OK, 0 rows affected (0.00 sec)

MariaDB [mysql]> exit;
Bye

[root@docker-ce011166091186.na131 /home/gyy01167504]
#mysql -uroot -p
Enter password: 
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 6
Server version: 5.5.68-MariaDB MariaDB Server

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]> 

五、参考文档

1、https://www.cnblogs.com/linglei/p/14519416.html

2、https://www.cnblogs.com/xieyupeng/p/8945297.html

3、https://blog.csdn.net/cy309173854/article/details/79929468

4、https://www.cnblogs.com/jie1521/p/10286604.html

5、https://www.cnblogs.com/linglei/p/14519416.html

6、http://www.geekapp.cn/archives/390.html

7、https://www.jb51.net/article/174244.htm
8、https://www.cnblogs.com/nucdy/p/5784809.html

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐