MySQL 8.0.19 Installation Tutorial

MySQL 8.0.19 Installation Tutorial

Download the installation package from the official website: mysql-8.0.19-linux-glibc2.12-x86_64.tar.xz

Installation environment: CentOS Linux release 7.5.1804 (Core)

Unzip the installation package:

xz -d mysql-8.0.19-linux-glibc2.12-x86_64.tar.xz
tar -xvf mysql-8.0.19-linux-glibc2.12-x86_64.tar

Environment variables:

yum install -y gcc gcc-c++ make cmake automake ncurses-devel bison bison-devel tcp_wrappers-devel libaio libaio-devel perl-Data-Dumper net-tools

Create relevant users and groups:

[root@localhost ~]# groupadd mysql
[root@localhost ~]# useradd -g mysql -d /home/mysql -m -p mysql mysql

Create relevant directories:

[root@localhost ~]# mkdir -p /data/mysql/;chown -R mysql.mysql /data/mysql/
[root@localhost ~]# mkdir -p /data/tmp/;chown -R mysql.mysql /data/tmp/

Edit the configuration file:

[root@localhost tmp]# vim /etc/my.cnf
[root@localhost mysql]# cat /etc/my.cnf
[client]
port= 3306
socket = /tmp/mysql.sock
## The MySQL server
[mysqld]
port = 3306
socket = /tmp/mysql.sock
user = mysql
skip-external-locking
skip-name-resolve
#skip-grant-tables
#skip-networking
######################################## dir
basedir=/usr/local/mysql
datadir=/data/mysql
tmpdir=/data/tmp
secure_file_priv=/data/tmp
######################################### some app
log-error=mysql.err
pid-file=/data/mysql/mysql.pid
local-infile=1
event_scheduler=0
federated
default-storage-engine=InnoDB
#default-time-zone= '+8:00'
log_timestamps=SYSTEM
character-set-client-handshake = FALSE
character-set-server = utf8mb4
collation-server = utf8mb4_unicode_ci
init_connect = 'SET NAMES utf8mb4'
#fulltext
innodb_optimize_fulltext_only
ft_min_word_len=1
#ft_max_word_len
innodb_ft_min_token_size=1
######################################## memory allocate and myisam configure
max_connections=3000
max_connect_errors=10000
key_buffer_size = 16M
max_allowed_packet = 16M
table_open_cache = 10240
sort_buffer_size = 2M
read_buffer_size = 2M
read_rnd_buffer_size = 2M
join_buffer_size=2M
myisam_sort_buffer_size = 4M
#net_buffer_length = 2M
thread_cache_size = 24
tmp_table_size=1G
max_heap_table_size=1G
#thread_concurrency =48
####################################### replication
server-id = 101096
log-bin=mysql-bin
binlog_format=mixed
max_binlog_size=1G
log_slave_updates=true
log_bin_trust_function_creators=true
binlog_expire_logs_seconds=259200 #binlog expiration time, in seconds replicate-ignore-db=mysql
replicate-ignore-db=test
replicate-ignore-db=information_schema
replicate-ignore-db=performance_schema
replicate-wild-ignore-table=mysql.%
replicate-wild-ignore-table=test.%
replicate-wild-ignore-table=information_schema.%
replicate-wild-ignore-table=performance_schema.%
lower_case_table_names = 1
#read_only=1
master_info_repository=TABLE
relay_log_info_repository=TABLE
######################################### slow-query
long_query_time=1
slow_query_log=1
slow_query_log_file=/data/mysql/slow-query.log
interactive_timeout=600
wait_timeout=600
########################################## innodb configure
innodb_file_per_table
innodb_data_home_dir = /data/mysql
innodb_log_group_home_dir = /data/mysql
innodb_buffer_pool_size = 4G
innodb_log_file_size = 1G
innodb_log_files_in_group = 3
innodb_log_buffer_size = 32M
innodb_flush_log_at_trx_commit = 1
sync_binlog=0
sql-mode="STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO"
##########################################
[mysqldump]
quick
max_allowed_packet = 16M
[mysql]
no-auto-rehash
default-character-set = utf8mb4
prompt=\\U \\h \\R:\\m:\\s \\d>
[myisamchk]
key_buffer_size = 20M
sort_buffer_size = 20M
read_buffer = 2M
write_buffer = 2M
[mysqlhotcopy]
interactive-timeout

Root Directory:

[root@localhost ~]# mv mysql-8.0.19-linux-glibc2.12-x86_64 /usr/local/mysql
[root@localhost ~]# chown -R mysql.mysql /usr/local/mysql

Initialize, the default password is empty:

[root@localhost ~]# /usr/local/mysql/bin/mysqld --initialize-insecure --basedir=/usr/local/mysql --datadir=/data/mysql/ --user=mysql

Check the log for errors:

[root@localhost ~]# cat /data/mysql/mysql.err
2020-01-20T15:11:46.156633+08:00 0 [System] [MY-013169] [Server] /usr/local/mysql/bin/mysqld (mysqld 8.0.19) initializing of server in progress as process 14822
 100 200 300 400 500 600 700 800 900 1000
 100 200 300 400 500 600 700 800 900 1000
 100 200 300 400 500 600 700 800 900 1000
2020-01-20T15:12:31.118120+08:00 5 [Warning] [MY-010453] [Server] root@localhost is created with an empty password ! Please consider switching off the --initialize-insecure option.

Environment variables and startup:

[root@localhost mysql]# vim /etc/profile
#Add export MYSQL_HOME=/usr/local/mysql at the end
PATH=$PATH:$MYSQL_HOME/bin/
[root@localhost mysql]# source /etc/profile
 [root@localhost mysql]# cd /usr/local/mysql
 [root@localhost mysql]# cp -f support-files/mysql.server /etc/init.d/mysqld

 [root@localhost mysql]# chmod 755 /etc/init.d/mysqld

 [root@localhost mysql]# chkconfig --add mysqld

 [root@localhost mysql]# chkconfig mysqld on

Start the database:

[root@localhost mysql]# /etc/init.d/mysqld start

Modify passwords and create users. 8.0 has cancelled the automatic creation of users with grant permissions. Use create user to create users and then grant permissions:

[root@localhost ~]# mysql -uroot -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 8
Server version: 8.0.19 MySQL Community Server - GPL

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.
root@localhost localhost 15:43:29 (none)>ALTER USER 'root'@'localhost' IDENTIFIED BY 'password';
Query OK, 0 rows affected (0.01 sec)
root@localhost localhost 15:49:30 (none)>CREATE USER ceshi@'localhost' IDENTIFIED BY 'password';
Query OK, 0 rows affected (0.01 sec)

root@localhost localhost 15:50:07 (none)>grant SELECT on *.* to 'ceshi'@'localhost';
Query OK, 0 rows affected, 1 warning (0.00 sec)

root@localhost localhost 15:51:10 (none)>show grants for ceshi@localhost;
+--------------------------------------------+
| Grants for ceshi@localhost |
+--------------------------------------------+
| GRANT SELECT ON *.* TO `ceshi`@`localhost` |
+--------------------------------------------+
1 row in set (0.00 sec)

ps: MySql8.0.19 installation pit record

1. ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.

The solution is as follows:

mysql> ALTER USER USER() IDENTIFIED BY 'Xiaoming250';

2. Change the root password

ALTER user 'root'@'localhost' IDENTIFIED BY 'new password';

Summarize

The above is the MySQL8.0.19 installation tutorial introduced by the editor. I hope it will be helpful to everyone. If you have any questions, please leave me a message and the editor will reply to you in time. I would also like to thank everyone for their support of the 123WORDPRESS.COM website!
If you find this article helpful, please feel free to reprint it and please indicate the source. Thank you!

You may also be interested in:
  • MySQL 8.0.19 installation and configuration tutorial under Windows 10
  • MySQL 8.0.19 winx64 installation tutorial and change the initial password under Windows 10
  • MySQL 8.0.19 installation and configuration method graphic tutorial
  • mysql 8.0.19 winx64.zip installation tutorial
  • mysql 8.0.19 win10 quick installation tutorial
  • MySQL 8.0.19 installation detailed tutorial (windows 64 bit)

<<:  Nginx reverse proxy springboot jar package process analysis

>>:  Vue2.x configures routing navigation guards to implement user login and exit

Recommend

Examples of common Nginx misconfigurations

Table of contents Missing root location Off-By-Sl...

JavaScript function call classic example code

Table of contents JavaScript function call classi...

Development details of Vue3 components

Table of contents 1. Introduction 2. Component De...

Summary of the differences between Mysql primary key and unique key

What is a primary key? A primary key is a column ...

Implementation ideas for docker registry image synchronization

Intro Previously, our docker images were stored i...

How to configure environment variables in Linux environment

JDK download address: http://www.oracle.com/techn...

How to manually build a new image with docker

This article introduces the method of manually bu...

Summary of various methods for JS data type detection

Table of contents background What are the methods...

Pure CSS code to achieve drag effect

Table of contents 1. Drag effect example 2. CSS I...

Implementing user registration function with js

This article example shares the specific code of ...

Example analysis to fix problems in historical Linux images

Fix for issues with historical Linux images The E...