1) install Mysql database
[root@localhost ~]# rpm -q mysql mysql-server Package mysql is not installed Package MySQL server is not installed [root@localhost ~]# yum -y install ncurses-devel [root@localhost ~]# rpm -q ncurses-devel ncurses-devel-5.9-14.20130511.el7_4.x86_64
Install configuration tool cmake
[root@localhost ~]# tar xf cmake-3.13.1.tar.gz -C /usr/src/ [root@localhost ~]# cd /usr/src/cmake-3.13.1/ [root@localhost cmake-3.13.1]# ./configure && gmake && gmake install
Create run user
[root@localhost ~]# useradd -M -s /sbin/nologin mysql
Unpack, configure, compile, install
[root@localhost ~]# tar xf mysql-8.0.11.tar.gz -C /usr/src/ [root@localhost ~]# cd /usr/src/mysql-8.0.11/ [root@localhost mysql-5.7.24]# cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DWITH_EXTRA_CHARSETS=all -DSYSCONFDIR=/etc && make && make install -DCMAKE_INSTALL_PREFIX=/usr/local/mysql //Database program installation directory -DDEFAULT_CHARSET=utf8 //Specify character set encoding -DDEFAULT_COLLATION=utf8_general_ci //Default character set proofing rules, utf8 ﹣ general ﹣ CI general rules applicable to utf-8 character set -DWITH_EXTRA_CHARSETS=all //Specify additional supported character set encoding -DSYSCONFDIR=/etc //Specify the directory to store the configuration file
Error reporting:
---------------------------------------------------------------------------------------------------------------------------- CMake Error at cmake/boost.cmake:81 (MESSAGE): You can download it with -DDOWNLOAD_BOOST=1 -DWITH_BOOST=<directory> This CMake script will look for boost in <directory>. If it is not there, it will download and unpack it (in that directory) for you. If you are inside a firewall, you may need to use an http proxy: export http_proxy=http://example.com:80 Call Stack (most recent call first): cmake/boost.cmake:238 (COULD_NOT_FIND_BOOST) CMakeLists.txt:507 (INCLUDE) -- Configuring incomplete, errors occurred! See also "/usr/src/mysql-5.7.24/CMakeFiles/CMakeOutput.log". See also "/usr/src/mysql-5.7.24/CMakeFiles/CMakeError.log". ----------------------------------------------------------------------------------------------------------------------------
The solution is:
1. Create a folder named boost under / usr/local
[root@localhost ~]# mkdir /usr/local/boost
2. Enter the directory and download boost
[root@localhost ~]# cd /usr/local/boost [root@localhost boost]# wget https://sourceforge.net/projects/boost/files/boost/1.66.0/boost_1_66_0.tar.gz
3. Decompress boost
[root@localhost boost]# tar xf boost_1_66_0.tar.gz
4. Continue cmake and add the red part
[root@localhost mysql-5.7.24]# cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DWITH_EXTRA_CHARSETS=all -DSYSCONFDIR=/etc -DWITH_BOOST=/usr/local/boost && make && make install
2) adjustment after installation
Set permissions on database directory
[root@localhost ~]# cd /usr/local/mysql/ [root@localhost mysql]# chown -R mysql:mysql ./
Create a configuration file (the CentOS7 system supports the MariaDB database by default, and the / etc/my.cnf configuration file is the MariaDB configuration file by default)
[root@localhost mysql]# vim /etc/my.cnf [mysqld] datadir=/usr/local/mysql/data socket=/tmp/mysql.sock [mysqld_safe] log-error=/usr/local/mysql/data/mysql.log pid-file=/usr/local/mysql/data/mysql.pid
3) initialize database
[root@localhost mysql]# ./bin/mysqld --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --initialize 2018-12-08T01:51:39.798903Z 1 [Note] A temporary password is generated for root@localhost: dskL0)8S3FGe --basedir=/usr/local/mysql/ //Specify installation directory (product directory) --datadir=/usr/local/mysql/data //Specify data directory --user=mysql //Specify user identity
4) setting environment variables
[root@localhost mysql-5.7.24]# echo "PATH=$PATH:/usr/local/mysql/bin" >> /etc/profile [root@localhost mysql-5.7.24]# . /etc/profile = source /etc/profile
5) add system service
Add MySQL as system service for management through systemctl command
[root@localhost mysql-5.7.24]# cp support-files/mysql.server /usr/local/mysql/bin/mysqld.sh [root@localhost mysql-5.7.24]# chmod +x /usr/local/mysql/bin/mysqld.sh [root@localhost ~]# vim /usr/lib/systemd/system/mysqld.service [Unit] Description=MySQL Server After=network.target [Service] User=mysql #Specify the user account for the program to run Group=mysql #Specify group account for program running Type=forking PIDFile=/usr/local/mysql/data/localhost.pid #Specifies the location of the pid file, which defaults to hostname. pid ExecStart=/usr/local/mysql/bin/mysqld.sh start ExecStop=/usr/local/mysql/bin/mysqld.sh stop [Install] WantedBy=mutil-user.target [root@localhost ~]# systemctl start mysqld [root@localhost ~]# systemctl enable mysqld Created symlink from /etc/systemd/system/mutil-user.target.wants/mysqld.service to /usr/lib/systemd/system/mysqld.service. [root@localhost ~]# systemctl status mysqld ● mysqld.service - MySQL Server Loaded: loaded (/usr/lib/systemd/system/mysqld.service; enabled; vendor preset: disabled) Active: active (running) since Six 2018-12-08 09:54:04 CST; 42s ago Main PID: 2520 (mysqld) CGroup: /system.slice/mysqld.service ├─2364 /bin/sh /usr/local/mysql/bin/mysqld_safe --datadir=/usr/local/mysql/data --pid... └─2520 /usr/local/mysql/bin/mysqld --basedir=/usr/local/mysql --datadir=/usr/local/my... 12 Month 0809:53:57 localhost systemd[1]: Starting MySQL Server... 12 Month 0809:54:04 localhost systemd[1]: mysqld.service: Supervising process 2520 which is not...ts. 12 Month 0809:54:04 localhost systemd[1]: Started MySQL Server. 12 Month 0809:54:16 localhost systemd[1]: mysqld.service: Supervising process 2520 which is not...ts. Hint: Some lines were ellipsized, use -l to show in full. [root@localhost ~]# netstat -lnpt | grep mysqld tcp6 0 0 :::3306 :::* LISTEN 2520/mysqld
MySQL provides services through TCP3306 port by default, which can be modified by editing the "port=3306" line in the / etc/my.cnf file.
[root@localhost mysql]# mysqladmin -u root -p'dskL0)8S3FGe' password 123456 [root@localhost mysql]# mysql -uroot -p123456 mysql: [Warning] Using a password on the command line interface can be insecure. Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 9 Server version: 8.0.11 Source distribution Copyright (c) 2000, 2018, 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> exit Bye [root@localhost mysql]#