1. Prerequisites Since I have installed it several times, I will not describe the error anymore. It's a bit confusing! ! ! Solve related dependencies and errors on the spot in advance. 1. Required source code package mysql-8.0.19.tar.gz boost_1_70_0.tar.gz //Install the boost version required for mysql-8 rpcsvc-proto-1.4.tar.gz //The source code package required for the error later mysql-8.0.19 Download address: http://mirrors.sohu.com/mysql/ boost_1_70_0 download address: https://dl.bintray.com/boostorg/release/1.70.0/source/ rpcsvc-proto-1.4 download address: https://github.com/thkukuk/rpcsvc-proto/releases/download/v1.4/ 2. Solve dependencies [14:41:21 root@wangzhike ~]#yum install -y cmake ncurses-devel 3. Storage location Software source code package storage location: /usr/local/src 2. Compile and install mysql-8.0.19 1. Upload source code package boost_1_70_0.tar.gz mysql-8.0.19.tar.gz rpcsvc-proto-1.4.tar.gz 2. Solve rpcsvc-proto-1.4 1) Decompression [17:05:14 root@wangzhike software]#tar -zxf rpcsvc-proto-1.4.tar.gz -C /usr/local/src/ 2) One-step installation [17:09:48 root@wangzhike rpcsvc-proto-1.4]#./configure && make && make install 3. Solve boost_1_70_0 [17:13:48 root@wangzhike~]# mkdir -p /usr/local/boost [17:14:05 root@wangzhike~]# cd /usr/local/src [17:15:02 root@wangzhike src]#cp /software/boost_1_70_0.tar.gz /usr/local/boost/ [17:26:22 root@wangzhike boost]#tar xf boost_1_70_0.tar.gz ////Only upload to the /usr/local/src/ storage directory and unzip to the current boost directory 4. Create mysql user and group [17:27:46 root@wangzhike ~]#groupadd mysql [17:28:10 root@wangzhike ~]#useradd -g mysql mysql -s /bin/false ####Create user mysql and add it to the mysql group. Do not allow mysql users to log in to the system directly [17:28:11 root@wangzhike ~]#mkdir -p /data/mysql ####Create the MySQL database storage directory[17:29:13 root@wangzhike ~]#chown -R mysql:mysql /data/mysql ####Set the permissions for the directory storing the MySQL database[17:29:31 root@wangzhike ~]#mkdir -p /usr/local/mysql ####Create MySQL installation directory 5. Install mysql-8.0.19 1) Decompression [17:43:24 root@wangzhike software]#tar -zxf mysql-8.0.19.tar.gz -C /usr/local/src/ [17:43:47 root@wangzhike software]#cd /usr/local/src/ [17:43:53 root@wangzhike src]#cd mysql-8.0.19/ 2) Installation [17:47:01 root@wangzhike mysql-8.0.19]#cmake . \ -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \ -DINSTALL_DATADIR=/data/mysql -DMYSQL_USER=mysql \ -DMYSQL_UNIX_ADDR=/tmp/mysqld.sock -DDEFAULT_CHARSET=utf8 \ -DDEFAULT_COLLATION=utf8_general_ci \ -DWITH_INNOBASE_STORAGE_ENGINE=1 \ -DWITH_EMBEDDED_SERVER=1 \ -DFORCE_INSOURCE_BUILD=1 \ -DWITH_MYISAM_STORAGE_ENGINE=1 \ -DENABLED_LOCAL_INFILE=1 \ -DEXTRA_CHARSETS=all \ -DWITH_BOOST=/usr/local/boost If the following occurs, then there is no problem
If the following error about rpc.h occurs Solution: [17:45:47 root@wangzhike mysql-8.0.19]#find / -name rpc.h /usr/local/src/mysql-8.0.19/extra/libevent/include/event2/rpc.h /usr/local/src/mysql-8.0.19/plugin/group_replication/libmysqlgcs/src/bindings/xcom/xcom/windeps/sunrpc/rpc/rpc.h
as follows
3) Make && install
Wait Wait Wait If the following error is reported, it means that there is insufficient memory and a partition needs to be created. +: fatal error: Killed signal terminated program cc1plus compilation terminated. make[2]: *** [sql/CMakeFiles/sql_gis.dir/build.make:154: sql/CMakeFiles/sql_gis.dir/gis/distance_functor.cc.o] Error 1 make[2]: *** Waiting for unfinished jobs.... make[1]: *** [CMakeFiles/Makefile2:11144: sql/CMakeFiles/sql_gis.dir/all] Error 2 make: *** [Makefile:163: all] Error 2 Create a partition: [19:58:37 root@wangzhike mysql-8.0.19]#dd if=/dev/zero of=/swapfile bs=1k count=2048000 2048000+0 records in 2048000+0 records out 2097152000 bytes (2.1 GB, 2.0 GiB) copied, 6.07651 s, 345 MB/s ####Get the 2G SWAP file block to be added [20:10:02 root@wangzhike mysql-8.0.19]#mkswap /swapfile mkswap: /swapfile: insecure permissions 0644, 0600 suggested. Setting up swapspace version 1, size = 2 GiB (2097147904 bytes) no label, UUID=18a4bbb3-75d1-411b-ac0c-c87c63547509 ####Create SWAP file[20:10:07 root@wangzhike mysql-8.0.19]#swapon /swapfile swapon: /swapfile: insecure permissions 0644, 0600 suggested. ####Activate SWAP file[20:10:12 root@wangzhike mysql-8.0.19]#swapon -s Filename Type Size Used Priority /dev/sda2 partition 2144252 137300 -2 /swapfile file 2047996 0 -3 #####Check whether the SWAP information is correct[20:10:19 root@wangzhike mysql-8.0.19]#echo "/var/swapfile swap swap defaults 0 0" >> /etc/fstab ####Add to fstab file to start automatically when the system boots When you re-execute make -j 3 && make install, the following screen appears and no error is reported ```bash -- Installing: /usr/local/mysql/man/man1/comp_err.1 -- Installing: /usr/local/mysql/man/man1/ibd2sdi.1 -- Installing: /usr/local/mysql/man/man1/innochecksum.1 -- Installing: /usr/local/mysql/man/man1/lz4_decompress.1 -- Installing: /usr/local/mysql/man/man1/my_print_defaults.1 -- Installing: /usr/local/mysql/man/man1/myisam_ftdump.1 -- Installing: /usr/local/mysql/man/man1/myisamchk.1 -- Installing: /usr/local/mysql/man/man1/myisamlog.1 -- Installing: /usr/local/mysql/man/man1/myisampack.1 -- Installing: /usr/local/mysql/man/man1/mysql.1 -- Installing: /usr/local/mysql/man/man1/mysql.server.1 -- Installing: /usr/local/mysql/man/man1/mysql_config.1 -- Installing: /usr/local/mysql/man/man1/mysql_config_editor.1 -- Installing: /usr/local/mysql/man/man1/mysql_secure_installation.1 -- Installing: /usr/local/mysql/man/man1/mysql_ssl_rsa_setup.1 -- Installing: /usr/local/mysql/man/man1/mysql_tzinfo_to_sql.1 -- Installing: /usr/local/mysql/man/man1/mysql_upgrade.1 -- Installing: /usr/local/mysql/man/man1/mysqladmin.1 -- Installing: /usr/local/mysql/man/man1/mysqlbinlog.1 -- Installing: /usr/local/mysql/man/man1/mysqlcheck.1 -- Installing: /usr/local/mysql/man/man1/mysqld_multi.1 -- Installing: /usr/local/mysql/man/man1/mysqld_safe.1 -- Installing: /usr/local/mysql/man/man1/mysqldump.1 -- Installing: /usr/local/mysql/man/man1/mysqldumpslow.1 -- Installing: /usr/local/mysql/man/man1/mysqlimport.1 -- Installing: /usr/local/mysql/man/man1/mysqlman.1 -- Installing: /usr/local/mysql/man/man1/mysqlpump.1 -- Installing: /usr/local/mysql/man/man1/mysqlshow.1 -- Installing: /usr/local/mysql/man/man1/mysqlslap.1 -- Installing: /usr/local/mysql/man/man1/perror.1 -- Installing: /usr/local/mysql/man/man1/zlib_decompress.1 -- Installing: /usr/local/mysql/man/man8/mysqld.8 -- Installing: /usr/local/mysql/man/man1/mysqlrouter.1 -- Installing: /usr/local/mysql/man/man1/mysqlrouter_passwd.1 -- Installing: /usr/local/mysql/man/man1/mysqlrouter_plugin_info.1 3. Initialize MySQL database 1. Modify the mysql directory permissions [20:37:59 root@wangzhike mysql-8.0.19]#chown -R mysql:mysql /usr/local/mysql [20:42:07 root@wangzhike mysql-8.0.19]#chmod -R 755 /usr/local/mysql 2. Initialize mysql [20:45:07 root@wangzhike ~]#cd /usr/local/mysql/ [20:46:43 root@wangzhike mysql]#./bin/mysqld --initialize --user=mysql --datadir=/usr/local/mysql/data --character-set-server=utf8 2020-04-14T12:47:13.718724Z 0 [System] [MY-013169] [Server] /usr/local/mysql/bin/mysqld (mysqld 8.0.19) initializing of server in progress as process 9893 2020-04-14T12:47:13.719367Z 0 [Warning] [MY-013242] [Server] --character-set-server: 'utf8' is currently an alias for the character set UTF8MB3, but will be an alias for UTF8MB4 in a future release. Please consider using UTF8MB4 in order to be unambiguous. 2020-04-14T12:47:14.855541Z 5 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: rUG-.8kdw<1f ####Generate mysql system database. 3. Modify the configuration file [20:49:41 root@wangzhike mysql]#vi /usr/local/mysql/my.cnf Add the following content: [client] port=3306 socket=/tmp/mysql.sock [mysqld] port=3306 user = mysql socket=/tmp/mysql.sock tmpdir = /tmp key_buffer_size=16M max_allowed_packet=128M default_authentication_plugin=mysql_native_password open_files_limit = 60000 explicit_defaults_for_timestamp server-id = 1 character-set-server = utf8 federated max_connections = 1000 max_connect_errors = 100000 interactive_timeout = 86400 wait_timeout = 86400 sync_binlog=0 back_log=100 default-storage-engine = InnoDB log_slave_updates = 1 [mysqldump] quick [client] password="123456" [mysqld-8.0] sql_mode=TRADITIONAL [mysqladmin] force [mysqld] key_buffer_size=16M service mysqld restart :wq! Save and exit. Note that service mysqld restart must be written. The default password is 123456. Other operations [20:53:05 root@wangzhike mysql]#ln -s /usr/local/mysql/my.cnf /etc/my.cnf #Add a soft link to the /etc directory [20:53:12 root@wangzhike mysql]#cd [20:53:13 root@wangzhike ~]#cp /usr/local/mysql/support-files/mysql.server /etc/rc.d/init.d/mysqld #Add Mysql to system startup [20:53:21 root@wangzhike ~]#chmod 755 /etc/init.d/mysqld #Add execution permissions[20:53:28 root@wangzhike ~]#chkconfig mysqld on #Add to boot 4. Edit files [20:53:39 root@wangzhike ~]#vi /etc/rc.d/init.d/mysqld ####Find basedir= and change it to /usr/local/mysql ####Find datadir= and change it to /data/mysql basedir=/usr/local/mysql #MySQL program installation path datadir=/data/mysql #MySQl database storage directory 5. Startup successfully [20:54:32 root@wangzhike ~]#service mysqld start Starting MySQL.Logging to '/data/mysql/wangzhike.err'. . SUCCESS! #Startup successful 6. Add variables [20:54:44 root@wangzhike ~]#vi /etc/profile Add export PATH=$PATH:/usr/local/mysql/bin to the last line [20:55:37 root@wangzhike ~]#source /etc/profile #Make the configuration take effect immediately 7. Add soft link [20:55:44 root@wangzhike ~]#ln -s /usr/local/mysql/lib/mysql /usr/lib/mysql [20:55:57 root@wangzhike ~]#ln -s /usr/local/mysql/include/mysql /usr/include/mysql ####The above is to link the mysql library file to the system default location [20:56:02 root@wangzhike ~]#mkdir /var/lib/mysql [20:56:14 root@wangzhike ~]#ln -s /tmp/mysql.sock /var/lib/mysql/mysql.sock 8. Start mysql [21:40:14 root@wangzhike ~]#mysql -uroot -p123456 Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 9 Server version: 8.0.19 Source distribution Copyright (c) 2000, 2020, 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> This indicates that the login is successful. Summarize This is the end of this article about CentOS8 deployment of LNMP environment to compile and install mysql-8.0.29. For more related CentOS8 deployment of LNMP environment to compile and install mysql-8.0.29, please search 123WORDPRESS.COM's previous articles or continue to browse the following related articles. I hope you will support 123WORDPRESS.COM in the future! You may also be interested in:
|
<<: Postman data encryption and decryption to implement APP login interface simulation request
>>: Detailed explanation of MySQL multi-table query examples [link query, subquery, etc.]
Table of contents 1. Basic conditions for databas...
What is HTML? HTML is a language used to describe...
HTML tags explained 1. HTML tags Tag: !DOCTYPE De...
The reason is simple: In HTML documents, multiple ...
This article shares the specific code of Vue usin...
1. The proxy_pass directive of the 1.ngx_stream_p...
Custom Image FAQ How to view the data disk? You c...
This article hopes to gain some insights through a...
Table of contents Logical Layering Separate busin...
This article example shares the specific code for...
ps: Here is how to disable remote login of root a...
background We can use react-color to implement th...
student.xml <?xml version="1.0" enco...
1 Introduction In the article "Start Postgre...
Detailed explanation of mysql count The count fun...