MYSQL8.0.11二进制安装

Mysql8.0源码编译安装涉及包较多,推荐现在二进制包安装。

 

一、创建用户和组

groupadd mysql

useradd -g mysql mysql

echo "password" | passwd --stdin mysql

 

二、创建目录

mkdir -p /data/mysql/tmp 

mkdir -p /data/mysql/data

mkdir -p /data/mysql/dumps 

mkdir -p /data/mysql/log 

mkdir -p /data/mysql/undo 

mkdir -p /data/servers/mysql/etc

chown mysql.mysql -R /data/mysql

chown mysql.mysql -R /data/servers/mysql

 

三、下载二进制包

https://cdn.mysql.com//Downloads/MySQL-8.0/mysql-8.0.11-linux-glibc2.12-x86_64.tar.gz

 

四、解压到指定目录

tar -zxvf/root/mysql-8.0.11-linux-glibc2.12-x86_64.tar.gz -C /data/servers/mysql

 

五、添加环境变量

sed -i '$a export PATH=$PATH:/data/servers/mysql/bin'/etc/profile; source /etc/profile

 

六、创建error.log(8.0版本在无error.log的情况下不会自动创建,会报错)

touch /data/mysql/log/error.log

chown mysql.mysql /data/mysql/log/error.log

 

七、初始化库表结构

 

mysqld --initialize --user=mysql --basedir=/data/servers/mysql/ --datadir=/data/mysql/data --innodb_undo_directory=/data/mysql/undo --innodb_undo_tablespaces=4 --socket=/data/mysql/tmp/mysql.socket --port=3306 --innodb_data_file_path=ibdata1:512M:autoextend --lower-case-table-names=1

注意8.0初始化必须指定这些参数,不然会报错

2018-07-04T07:54:21.696764Z 1 [ERROR]  [MY-012930] [InnoDB] InnoDB: Plugin initialization aborted with error Generic  error.

2018-07-04T07:54:22.297200Z 1 [ERROR] [MY-010334] [Server] Failed to  initialize DD Storage Engine

2018-07-04T07:54:22.297359Z 0 [ERROR] [MY-010020] [Server] Data Dictionary  initialization failed.

2018-07-04T07:54:22.297381Z 0 [ERROR] [MY-010119] [Server] Aborting 

初始化产生的初始密码:

[Note] [MY-010454] [Server] A temporary password is generated for root@localhost:Jod6BHNlkd*8

 

八、添加配置文件(仅供参考)

vim /data/servers/mysql/etc/my.cnf 

[client]
port3306
socket/data/mysql/tmp/mysql.socket
[mysqld]
innodb_undo_tablespaces4
innodb_undo_directory/data/mysql/undo
######MySQL8.0自适应参数######
#innodb_log_file_size1363148800
innodb_data_file_pathibdata1:512M:autoextend
innodb_checksum_algorithmcrc32
explicit_defaults_for_timestampON
innodb_buffer_pool_load_at_startupON
innodb_buffer_pool_dump_at_shutdownON
read_only0
port3306
socket/data/mysql/tmp/mysql.socket
datadir/data/mysql/data
basedir/data/servers/mysql
usermysql
innodb_dedicated_server1
#---GLOBAL---#
#transaction-isolationREAD-COMMITTED
sql_modeNO_ENGINE_SUBSTITUTION
default_authentication_pluginmysql_native_password
######在MySQL8.0中注释掉此参数,不然就会有警告信息######
#secure_file_priv 
default-storage-engineINNODB
character-set-serverutf8mb4
######mysql8.0要求设定为0######
lower_case_table_names1
log-error/data/mysql/log/error.log
general_log0
general_log_file/data/mysql/log/general.log
pid-file/data/mysql/data/mysql.pid
slow-query-log 
slow_query_log_file/data/mysql/log/slow.log
tmpdir/data/mysql/tmp
long_query_time0.1
#enableslaveslowlog 
log_slow_slave_statements1
thread_cache_size512
table_open_cache16384
table_definition_cache16384
table_open_cache_instances8
######弃用######
#metadata_locks_hash_instances256
sort_buffer_size256K
join_buffer_size256K
read_buffer_size256K
read_rnd_buffer_size256K
key_buffer_size64M
myisam_sort_buffer_size64M
tmp_table_size16M
max_heap_table_size16M
open_files_limit65535
######mysql8.0无此参数######
#query_cache_type0
log_bin_trust_function_creators1
#---NETWORK---#
back_log2000
max_allowed_packet64M
interactive_timeout28800
wait_timeout28800
max-connections2000
#skip-name-resolve 
#---REPL---#
server-id1234567
report_host192.168.1.1
#nogtidconfig 
log-binmysql-bin
binlog_formatrow
binlog_row_imagefull
######弃用######
#expire_logs_days7
binlog_expire_logs_seconds604800
relay-logrelay-log
log_slave_updates 
slave_net_timeout30
skip-slave-start 
slave-parallel-workers0
relay_log_info_repositoryTABLE
master_info_repositoryTABLE
sync_master_info0
sync_relay_log_info0
sync_binlog1
#flushdisk 
sync_relay_log0
slave_rows_search_algorithmsINDEX_SCAN,HASH_SCAN
#rpl_semi_sync_master_enabled1
#rpl_semi_sync_slave_enabled1
#rpl_semi_sync_master_timeout1000
relay_log_recovery1
#---INNODB---#
innodb_adaptive_flushingON
innodb_adaptive_flushing_lwm15
innodb_flushing_avg_loops30
innodb_adaptive_hash_indexON
innodb_data_home_dir/data/mysql/data
innodb_file_per_tableON
innodb_log_group_home_dir/data/mysql/data
innodb_log_files_in_group3
innodb_log_buffer_size32M
innodb_flush_log_at_trx_commit1
innodb_flush_log_at_timeout1
innodb_lock_wait_timeout30
######MySQL8.0自适应参数######
#innodb_flush_methodO_DIRECT
innodb_max_dirty_pages_pct75
innodb_max_dirty_pages_pct_lwm0
######MySQL8.0自适应参数######
#innodb_buffer_pool_size100G
innodb_buffer_pool_instances8
innodb_change_bufferingall
innodb_change_buffer_max_size10
innodb_autoextend_increment64
innodb_thread_concurrency32
innodb_spin_wait_delay6
innodb_sync_spin_loops30
innodb_open_files65535
innodb_old_blocks_time30
innodb_online_alter_log_max_size512M
innodb_write_io_threads8
innodb_read_io_threads8
innodb_flush_neighbors0
innodb_io_capacity3000
innodb_io_capacity_max16000
innodb_lru_scan_depth1024
innodb_purge_threads4
innodb_purge_batch_size400
######mysql8.0无此参数######
#innodb_file_formatBarracuda
######mysql8.0无此参数######
#innodb_large_prefixON
##innodb_force_load_corruptedOFF
#innodb_force_recovery0
#bufferpooldumpandload 
innodb_buffer_pool_filenameib_buffer_pool
innodb_buffer_pool_load_abortOFF
innodb_buffer_pool_dump_nowOFF
innodb_buffer_pool_load_nowOFF
[mysqldump]
quick 
max_allowed_packet64M
[mysql]
no-auto-rehash 
default-character-setutf8mb4
prompt(\u@\h)[\d]>
[myisamchk]
key_buffer_size128M
sort_buffer_size128M
read_buffer2M
write_buffer2M
[mysqlhotcopy]
interactive-timeout 

chown mysql.mysql -R /data/servers/mysql

 

九、启动

/data/servers/mysql/bin/mysqld_safe --defaults-file=/servers/mysql/etc/my.cnf &

 

十、登录(初始密码)

/data/servers/mysql/bin/mysql -uroot -p --socket=/data/mysql/tmp/mysql.socket

 

十一、修改密码

mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY "123456";(默认采用新加密方式)

注意8.0 默认采用新的加密方式:caching_sha2_password,会导致8.0以下版本的客户端连接不上:

ERROR 2059 (HY000): Authentication plugin 'caching_sha2_password' cannot be loaded: /data/servers/mysql/lib/plugin/caching_sha2_password.so: cannot open shared  object file: No such file or directory

解决:修改为老的加密方式:mysql_native_password

mysql> ALTER USER `test`@`%` IDENTIFIED WITH mysql_native_password BY "123456"; #修改加密规则 

mysql> ALTER USER `test`@`%` IDENTIFIED BY "123456" PASSWORD EXPIRE NEVER; #永不过期

mysql> FLUSH PRIVILEGES; #刷新权限 

或者在配置文件my.cnf修改参数采用老的加密方式

default_authentication_plugin = mysql_native_password

 

 

接下来可以自由发挥了~~~

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值