Install mysql-5.7.24 under Linux (Centos 8.2) Alibaba Cloud Server

Reprinted: https://www.jianshu.com/p/276d59cbc529

For developers, the installation of Mysql database is a problem we will inevitably face. Its installation process is not complicated, and there are many installation tutorials on the Internet, but for novices, there are various forms of installation The tutorial has brought the novices the difficulty of which way to choose to install, and in many cases, the installation is not successful according to the tutorial, and various errors occur during the installation process.

The following records the complete process of installing Mysql in the Linux (Centos 7) environment. The actual operation record is by no means hydrology. If there are errors or omissions, please correct me.

\color{#FFA500}{ Note 1:} This document explains that the installation version is mysql-5.7.24. For versions after 5.7.24, this document is not applicable. The main reason is the directory location and The structure has changed. Using this description may cause the configuration file not to be found or the configuration does not take effect.

\color{#FFA500}{ Note 2:} During the installation process, ensure that the file path is consistent, otherwise it may cause unexpected results. It is recommended to use the commands in the text directly.

1. Prepare before installation
1. Check whether mysql has been installed and execute the command

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

From the execution results, we can see that we have installed mysql-libs-5.1.73-5.el6_6.x86_64, execute the delete command

[root@localhost /]# rpm -e --nodeps mysql-libs-5.1.73-5.el6_6.x86_64
execute the query command again to see if it is deleted

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

2. Query all folders corresponding to Mysql

[root@localhost /]# whereis mysql
mysql: /usr/bin/mysql /usr/include/mysql
[root@localhost lib]# find / -name mysql
/data/mysql
/data/mysql/mysql
delete related directories or files

[root@localhost /]# rm -rf /usr/bin/mysql /usr/include/mysql /data/mysql /data/mysql/mysql
verify whether the deletion is complete

[root@localhost /]# whereis mysql
mysql:
[root@localhost /]# find / -name mysql
[root@localhost /]#
3. Check whether the mysql user group and user exist, if not, create

[root@localhost /]# cat /etc/group | grep mysql
[root@localhost /]# cat /etc/passwd |grep mysql
[root@localhost /]# groupadd mysql
[root@localhost /]# useradd -r- g mysql mysql
[root@localhost /]#
4. Download the Mysql installation package for Linux from the official website

Download command:

[root@localhost /]# wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.24-linux-glibc2.12-x86_64.tar.gz
can also be selected directly on the mysql official website Download the corresponding version.

2. Install Mysql
1. Find the Mysql installation package in the directory where the wget command is executed or in your upload directory: mysql-5.7.24-linux-glibc2.12-x86_64.tar.gz and
execute the decompression command:

[root@localhost /]# tar xzvf mysql-5.7.24-linux-glibc2.12-x86_64.tar.gz
[root@localhost /]# ls
mysql-5.7.24-linux-glibc2.12-x86_64
mysql-5.7 After .24-linux-glibc2.12-x86_64.tar.gz is
decompressed, you can see that there is an additional decompressed file in the current directory. Move the file to /usr/local/ and modify the folder name to mysql.

If mysql already exists under /usr/local/, please modify the existing mysql file to another name, otherwise the subsequent steps may not be performed correctly.

The execution command is as follows:

[root@localhost /]# mv mysql-5.7.24-linux-glibc2.12-x86_64 /usr/local/
[root@localhost /]# cd /usr/local/
[root@localhost /]# mv mysql-5.7 .24-linux-glibc2.12-x86_64 mysql
If there is no mysql folder under /usr/local/, you can directly execute the following command to achieve the above effect.

[root@localhost /]# mv mysql-5.7.24-linux-glibc2.12-x86_64 /usr/local/mysql
2. Create a data directory under the /usr/local/mysql directory

[root@localhost /]# mkdir /usr/local/mysql/data
3. Change the user groups and users, and permissions of all directories and folders in the mysql directory

[root@localhost /]# chown -R mysql:mysql /usr/local/mysql
[root@localhost /]# chmod -R 755 /usr/local/mysql
4. Compile, install and initialize mysql, remember to initialize the output log Password at the end (temporary database administrator password)

[root@localhost /]# cd /usr/local/mysql/bin
[root@localhost bin]# ./mysqld --initialize --user=mysql --datadir=/usr/local/mysql/data --basedir= /usr/local/mysql
Supplement: In
step 4, errors may occur:

When this problem occurs, first check whether the link library file is installed and use the command to check

[root@localhost bin]# rpm -qa|grep libaio
[root@localhost bin]# After
running the command, there is no such link library file in the system

[root@localhost bin]# yum install libaio-devel.x86_64 After the
installation is successful, continue to run the database initialization command, and the following error may occur at this time:

After executing the following command:

[root@localhost bin]# After yum -y install numactl is
executed correctly, re-execute the initialization command in step 4, and then proceed to step 5 after it is correct!

5. After running the initialization command successfully, the output log is as follows:

Record the string after root@localhost: at the end of the log. This string is the temporary login password of the MySQL administrator.

6. Edit the configuration file my.cnf and add the configuration as follows

[root @ localhost bin] # vi /etc/my.cnf

[mysqld]
datadir=/usr/local/mysql/data
port=3306
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
symbolic-links=0
max_connections=600
innodb_file_per_table=1
lower_case_table_names=1
character_set_server=utf8
lower_case_table_names: whether storage is case sensitive The name is lowercase, and the operation is not case-sensitive; 0 means case-sensitive; it cannot be set dynamically, and must be restarted to take effect after modification:
character_set_server: set the database default character set, if not set, the default is latin1
innodb_file_per_table: whether to set each table The data of is stored separately, 1 means separate storage; 0 means to close the independent table space, you can check the difference in file structure by viewing the data directory;

7, test to start the mysql server

[root@localhost /]# /usr/local/mysql/support-files/mysql.server start
shows the following results, indicating that the database is installed and can be started normally

Abnormal situation
If the following message appears

Starting MySQL… ERROR! The server quit without updating PID file
Check whether there are mysql and mysqld services, if they exist, terminate the process, and then execute the start command again


#Query service ps -ef|grep mysql | grep -v grep
ps -ef|grep mysqld | grep -v grep

#End process
kill -9 PID


#Start the service/ usr/local / mysql/ support- files/mysql.server start

8. Add a soft connection and restart the mysql service

[root@localhost /]# ln -s /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql
[root@localhost /]# ln -s /usr/local/mysql/bin /mysql /usr/bin/mysql
[root@localhost /]# service mysql restart
9. Log in to mysql and change the password (the password is the temporary password generated in step 5)

[root@localhost /]# mysql -u root -p
Enter password:
mysql>set password for root@localhost = password('yourpass');
Note: When entering the password, there will be no display behind Enter password. If the input is successful, just press Enter after inputting the password. Or use: mysql -u root -p password, press Enter, you can directly enter the database

10. Open remote connection

mysql>use mysql;
msyql>update user set user.Host=’%’ where user.User=‘root’;
mysql>flush privileges;

11. Set automatic startup

1. Copy the service file to init.d and rename it to mysql
[root@localhost /]# cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
2. Assign Execution authority
[root@localhost /]# chmod +x /etc/init.d/mysqld
3. Add service
[root@localhost /]# chkconfig --add mysqld
4. Display service list
[root@localhost /]# chkconfig- -list So
far, the database installation of mysql5.7.24 has been completed.

Guess you like

Origin blog.csdn.net/Cursh_programmer/article/details/109624880