本文记录下Centos系统下Mysql 8.0.15的安装过程;
Mysql下载地址
https://dev.mysql.com/get/Downloads/Mysql-8.0/mysql-8.0.15-linux-glibc2.12-x86_64.tar.xz
这里建议使用迅雷下载,我使用迅雷下载是最快的,在虚拟机下面直接wget下载或者使用Chrome下载都很慢,迅雷还好一点;
解压缩
将mysql放在/usr/local/mysql目录下:
[root@aubin local]# xz -d mysql-8.0.15-linux-glibc2.12-x86_64.tar.xz
[root@aubin local]# tar xf mysql-8.0.15-linux-glibc2.12-x86_64.tar
[root@aubin local]# ls
启动Mysql
修改my.cnf
cd /etc/my.cnf
[client]
port = 3306
socket = /usr/local/mysql/data/mysql.sock
[mysqld]
# Skip #
skip_name_resolve = 1
skip_external_locking = 1
skip_symbolic_links = 1
# GENERAL #
user = mysql
default_storage_engine = InnoDB
character-set-server = utf8
socket = /usr/local/mysql/data/mysql.sock
pid_file = /usr/local/mysql/data/mysqld.pid
basedir = /usr/local/mysql
port = 3306
bind-address = 0.0.0.0
explicit_defaults_for_timestamp = off
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
#read_only=on
# MyISAM #
key_buffer_size = 32M
#myisam_recover = FORCE,BACKUP
# undo log #
innodb_undo_directory = /usr/local/mysql/undo
innodb_undo_tablespaces = 8
# SAFETY #
max_allowed_packet = 100M
max_connect_errors = 1000000
sysdate_is_now = 1
#innodb = FORCE
#innodb_strict_mode = 1
secure-file-priv='/tmp'
default_authentication_plugin='mysql_native_password'
# Replice #
server-id = 1001
relay_log = mysqld-relay-bin
gtid_mode = on
enforce-gtid-consistency
log-slave-updates = on
master_info_repository =TABLE
relay_log_info_repository =TABLE
# DATA STORAGE #
datadir = /usr/local/mysql/data/
tmpdir = /tmp
# BINARY LOGGING #
log_bin = /usr/local/mysql/sql_log/mysql-bin
max_binlog_size = 1000M
binlog_format = row
binlog_expire_logs_seconds=86400
# sync_binlog = 1
# CACHES AND LIMITS #
tmp_table_size = 32M
max_heap_table_size = 32M
max_connections = 4000
thread_cache_size = 2048
open_files_limit = 65535
table_definition_cache = 4096
table_open_cache = 4096
sort_buffer_size = 2M
read_buffer_size = 2M
read_rnd_buffer_size = 2M
# thread_concurrency = 24
join_buffer_size = 1M
# table_cache = 32768
thread_stack = 512k
max_length_for_sort_data = 16k
# INNODB #
innodb_flush_method = O_DIRECT
innodb_log_buffer_size = 16M
innodb_flush_log_at_trx_commit = 2
innodb_file_per_table = 1
innodb_buffer_pool_size = 256M
#innodb_buffer_pool_instances = 8
innodb_stats_on_metadata = off
innodb_open_files = 8192
innodb_read_io_threads = 16
innodb_write_io_threads = 16
innodb_io_capacity = 20000
innodb_thread_concurrency = 0
innodb_lock_wait_timeout = 60
innodb_old_blocks_time=1000
innodb_use_native_aio = 1
innodb_purge_threads=1
innodb_change_buffering=all
innodb_log_file_size = 64M
innodb_log_files_in_group = 2
innodb_data_file_path = ibdata1:256M:autoextend
innodb_rollback_on_timeout=on
# LOGGING #
log_error = /usr/local/mysql/sql_log/mysql-error.log
# log_queries_not_using_indexes = 1
# slow_query_log = 1
slow_query_log_file = /usr/local/mysql/sql_log/slowlog.log
# TimeOut #
#interactive_timeout = 30
#wait_timeout = 30
#net_read_timeout = 60
[mysqldump]
quick
max_allowed_packet = 100M
[mysql]
no-auto-rehash
# Remove the next comment character if you are not familiar with SQL
#safe-updates
[myisamchk]
key_buffer_size = 256M
sort_buffer_size = 256M
read_buffer = 2M
write_buffer = 2M
[mysqlhotcopy]
interactive-timeout
创建配置文件中指定的文件
mkdir data sql_log undo
chown mysql:mysql -R data/ sql_log/
启动路径修改
- 打开/etc/profile文件,在文件末尾加上
[root@aubin mysql]# vi /etc/profile
export PATH=$PATH:/usr/local/mysql/bin
[root@aubin mysql]# source /etc/profile
初始化mysql数据库
[root@aubin mysql]# mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data
[root@aubin mysql]# cd data/
[root@aubin data]# ls
auto.cnf ca.pem client-key.pem ibdata1 ib_logfile1 mysql performance_schema public_key.pem server-key.pem
ca-key.pem client-cert.pem ib_buffer_pool ib_logfile0 #innodb_temp mysql.ibd private_key.pem server-cert.pem sys
[root@aubin data]#
启动MySQL
[root@aubin mysql]# cd support-files/
[root@aubin support-files]# ls
magic mysqld_multi.server mysql-log-rotate mysql.server
[root@aubin support-files]# cp mysql.server /etc/init.d/mysqld
[root@aubin support-files]# /etc/init.d/mysqld start
Starting MySQL... SUCCESS!
启动完成之后需要修改MySQL的初始化密码(5.7之后)
[root@aubin mysql]# cd sql_log/
[root@aubin sql_log]# ls
mysql-bin.000001 mysql-bin.000002 mysql-bin.index mysql-error.log
[root@aubin sql_log]# grep password mysql-error.log
2020-11-15T14:04:14.360179Z 5 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: Rl.G(poE37u)
[root@aubin sql_log]# mysql -u root -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 8
Server version: 8.0.15
Copyright (c) 2000, 2019, 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> alter user user() identified by '123456';
Query OK, 0 rows affected (0.03 sec)