官网下载安装包:mysql-8.0.19-linux-glibc2.12-x86_64.tar.xz
安装环境:CentOS Linux release 7.5.1804 (Core)
解压安装包:
xz -d mysql-8.0.19-linux-glibc2.12-x86_64.tar.xztar -xvf mysql-8.0.19-linux-glibc2.12-x86_64.tar
环境变量:
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
创建相关用户和组:
[root@localhost ~]# groupadd mysql
[root@localhost~]# useradd -g mysql -d /home/mysql -m -p mysql mysql
创建相关目录:
[root@localhost ~]# mkdir -p /data/mysql/;chown -R mysql.mysql /data/mysql/[root@localhost~]# mkdir -p /data/tmp/;chown -R mysql.mysql /data/tmp/
编辑配置文件:
[root@localhost tmp]# vim /etc/my.cnf
[root@localhost mysql]#cat /etc/my.cnf
[client]
port= 3306socket= /tmp/mysql.sock
## The MySQL server
[mysqld]
port= 3306socket= /tmp/mysql.sock
user=mysql
skip-external-locking
skip-name-resolve
#skip-grant-tables
#skip-networking
######################################dirbasedir=/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=1event_scheduler=0federated
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=3000max_connect_errors=10000key_buffer_size=16M
max_allowed_packet=16M
table_open_cache= 10240sort_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= 24tmp_table_size=1G
max_heap_table_size=1G
#thread_concurrency=48###################################### replication
server-id = 101096log-bin=mysql-bin
binlog_format=mixed
max_binlog_size=1G
log_slave_updates=truelog_bin_trust_function_creators=truebinlog_expire_logs_seconds=259200#binlog过期时间,单位秒
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=1master_info_repository=TABLE
relay_log_info_repository=TABLE
###################################### slow-query
long_query_time=1slow_query_log=1slow_query_log_file=/data/mysql/slow-query.log
interactive_timeout=600wait_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= 3innodb_log_buffer_size=32M
innodb_flush_log_at_trx_commit= 1sync_binlog=0sql-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@localhost ~]# mv mysql-8.0.19-linux-glibc2.12-x86_64 /usr/local/mysql
[root@localhost~]# chown -R mysql.mysql /usr/local/mysql
进行初始化,默认密码为空:
[root@localhost ~]# /usr/local/mysql/bin/mysqld --initialize-insecure --basedir=/usr/local/mysql --datadir=/data/mysql/ --user=mysql
查看日志有没有报错:
[root@localhost ~]# cat /data/mysql/mysql.err2020-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.
环境变量与开机自启:
[root@localhost mysql]# vim /etc/profile
#在最后添加
export MYSQL_HOME=/usr/local/mysql
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
启动数据库:
[root@localhost mysql]# /etc/init.d/mysqld start
修改密码与创建用户,8.0已取消grant权限自动创建用户,要用create user创建用户再用grant赋予权限:
[root@localhost ~]# mysql -uroot -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or g.
Your MySQL connectionid is 8Server 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 clearthe current input statement.
root@localhost localhost15:43:29 (none)>ALTER USER "root"@"localhost" IDENTIFIED BY "password";
Query OK,0 rows affected (0.01sec)
root@localhost localhost15:49:30 (none)>CREATE USER ceshi@"localhost" IDENTIFIED BY "password";
Query OK,0 rows affected (0.01sec)
root@localhost localhost15:50:07 (none)>grant SELECT on *.* to "ceshi"@"localhost";
Query OK,0 rows affected, 1 warning (0.00sec)
root@localhost localhost15:51:10 (none)>show grants forceshi@localhost;+--------------------------------------------+
| Grants for ceshi@localhost |
+--------------------------------------------+
| GRANT SELECT ON *.* TO `ceshi`@`localhost` |
+--------------------------------------------+
1 row in set (0.00 sec)