MySQL安装

MySQL安装

安装依赖

yum -y install libaio

准备软件

mkdir -p /opt/softs
cd /opt/softs
wget https://mirrors.aliyun.com/mysql/MySQL-8.0/mysql-8.0.26-linux-glibc2.12-x86_64.tar.xz
tar -xf mysql-8.0.26-linux-glibc2.12-x86_64.tar.xz
ln -s /opt/softs/mysql-8.0.26-linux-glibc2.12-x86_64 /usr/local/mysql

准备环境

useradd mysql

mkdir -pv /usr/local/mysql/{data,log}

编写配置文件

cat > /etc/my.cnf << EOF
[client]
port                            = 3306
socket                          = /tmp/mysql.sock
[mysqld]
lower_case_table_names          = 1
user                            = mysql
server_id                       = 1
port                            = 3306
socket                          = /tmp/mysql.sock
basedir                         = /usr/local/mysql
datadir                         = /usr/local/mysql/data
pid-file                        = /tmp/mysql.pid
tmpdir                          = /tmp
default-time-zone               = '+08:00'
default_authentication_plugin   = mysql_native_password
enforce_gtid_consistency        = ON
gtid_mode                       = ON
binlog_checksum                 = none
skip-name-resolve               = ON
open_files_limit                = 65535
table_open_cache                = 2000

#################innodb########################
default-storage-engine          = InnoDB
innodb_data_home_dir            = /usr/local/mysql/data
innodb_data_file_path           = ibdata1:512M;ibdata2:512M:autoextend
innodb_buffer_pool_size         = 12000M
innodb_flush_log_at_trx_commit  = 1
innodb_io_capacity              = 600
innodb_lock_wait_timeout        = 120
innodb_log_buffer_size          = 8M
innodb_log_file_size            = 200M
innodb_log_files_in_group       = 3
innodb_max_dirty_pages_pct      = 85
innodb_read_io_threads          = 8
innodb_write_io_threads         = 8
innodb_thread_concurrency       = 32
innodb_file_per_table           = 1
innodb_undo_directory           = /usr/local/mysql/data
innodb_log_group_home_dir       = /usr/local/mysql/data

###################session###########################
join_buffer_size                = 8M
key_buffer_size                 = 256M
bulk_insert_buffer_size         = 8M
max_heap_table_size             = 96M
tmp_table_size                  = 96M
read_buffer_size                = 8M
sort_buffer_size                = 2M
max_allowed_packet              = 64M
read_rnd_buffer_size            = 32M


############log set###################
log-error                       = /usr/local/mysql/log/mysql-err.log
log-bin                         = /usr/local/mysql/log/mysql-bin
log_bin_index                   = /usr/local/mysql/log/binlog.index
max_binlog_size                 = 500M
slow_query_log_file             = /usr/local/mysql/log/mysql-slow.log
slow_query_log                  = 1
long_query_time                 = 10
log_queries_not_using_indexes   = ON
log_throttle_queries_not_using_indexes  = 10
log_slow_admin_statements       = ON
log_output                      = FILE,TABLE
binlog_format                   = mixed
EOF
chown mysql:mysql /etc/my.cnf
chown -R mysql:mysql /usr/local/mysql
chown -R mysql:mysql /usr/local/mysql/*
echo "export PATH=/usr/local/mysql/bin:/usr/local/mysql/lib:\$PATH" >> ~/.bash_profile
source ~/.bash_profile

初始化

# 初始化
mysqld --defaults-file=/etc/my.cnf  --initialize-insecure  --user=mysql

# 守护进程启动
mysqld_safe --defaults-file=/etc/my.cnf &

# 首次socket登录,登录后失效
mysql -S /tmp/mysql.sock

# 修改用户密码
ALTER USER 'root'@'localhost' IDENTIFIED BY '123456';
FLUSH PRIVILEGES;
exit;

再次登录

mysql -p123456
select version();
exit;

编写systemd脚本

cat > /usr/lib/systemd/system/mysql.service << EOF
[Unit]
Description=MySQL Server
Documentation=http://dev.mysql.com/doc/refman/en/using-systemd.html
After=network.target
After=syslog.target

[Install]
WantedBy=multi-user.target

[Service]
User=mysql
Group=mysql
ExecStart=/usr/local/mysql/bin/mysqld --defaults-file=/etc/my.cnf
LimitNOFILE=5000
Restart=on-failure
RestartPreventExitStatus=1
PrivateTmp=false
EOF

启动

ps -ef | grep mysql | grep -Ev "grep" | awk '{print $2}' | xargs kill -9
systemctl start mysql
systemctl status mysql

创建远程登录用户

mysql -uroot -p123456
CREATE USER 'me'@'%' IDENTIFIED BY '123456';
GRANT ALL ON *.* TO 'me'@'%';
exit;

配置文件参考

posted @ 2021-05-10 18:17  d4peng  阅读(5)  评论(0)    收藏  举报