The official version 8.0.11 of MySQL 8 has been released. Officially, MySQL 8 is 2 times faster than MySQL 5.7, and it also brings a lot of improvements and faster performance!
The following is the record of my installation process on April 23, 2018. The whole process takes about an hour, and the make && make install process takes longer.
1. Environment
CentOS7.4 64-bit Minimal Installation
2. Preparations
1. Install dependencies
yum -y install wget cmake gcc gcc-c++ ncurses ncurses-devel libaio-devel openssl openssl-devel
2. Download the source package
wget https: // cdn.mysql.com // Downloads/MySQL-8.0/mysql-boost-8.0.11.tar.gz (this version comes with boost)
3. Create mysql user
groupadd mysql useradd -r -g mysql -s /bin/false mysql
4. Create the installation directory and data directory
mkdir -p /usr/local/mysql mkdir -p /data/mysql
3. Install MySQL8.0.11
1. Unzip the source package
tar -zxf mysql-boost-8.0.11.tar.gz -C /usr/local
2. Compile & Install
cd /usr/local/mysql-8.0.11 cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_DATADIR=/usr/local/mysql/data -DSYSCONFDIR=/etc -DMYSQL_TCP_PORT=3306 -DWITH_BOOST=/usr/local/mysql-8.0.11/boost make && make install
3. Configure the my.cnf file
cat /etc/my.cnf [mysqld] server-id=1 port=3306 basedir=/usr/local/mysql datadir =/data/mysql
##Please add parameters according to the actual situation
4. Directory permission modification
chown -R mysql:mysql /usr/local/mysql chown -R mysql:mysql /data/mysql chmod 755 /usr/local/mysql -R chmod 755 /data/mysql -R
5. Initialization
bin/mysqld --initialize --user=mysql --datadir=/data/mysql/
bin/mysql_ssl_rsa_setup
6. Start mysql
bin/mysqld_safe --user=mysql &
7. Modify account password
bin/mysql -uroot -p mysql> alter user 'root'@'localhost' identified by "123456";
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| sys |
+--------------------+
4 rows in set (0.00 sec)
##Add remote special account
mysql> create user root@'%' identified by '123456';
Query OK, 0 rows affected (0.08 sec)
mysql> grant all privileges on *.* to root@'%';
Query OK, 0 rows affected (0.04 sec)
mysql> flush privileges;
Query OK, 0 rows affected (0.01 sec)
8. Create soft links ( optional )
ln -s /usr/local/mysql/bin/* /usr/local/bin/
mysql -h 127.0.0.1 -P 3306 -uroot -p123456 -e "select version();"
mysql: [Warning] Using a password on the command line interface can be insecure.
+-----------+
| version() |
+-----------+
| 8.0.11 |
+-----------+
9. Add to startup ( non-essential )
cp support-files/mysql.server /etc/init.d/mysql.server
Hereby note : MySQL officially recommends the binary installation method. (The picture below is a screenshot of the official document)