创建mysql用户
useradd -M -s /sbin/nologin mysql
解压mysql源码包
tar zvxf mysql-8.0.33-el7-x86_64.tar.gz
mv mysql-8.0.33-el7-x86_64 /data/mysql
创建mysql数据存储目录、bin文件目录、日志目录、运行目录以及错误日志文件
mkdir /data/mysql/mysqldata
mkdir /data/mysql/mysql-bin
mkdir /data/mysql/logs
mkdir /data/mysql/run
touch /data/mysql/logs/error.log
创建mysql配置文件my.cnf
mysql配置文件
cat << EOF > /etc/my.cnf
[mysql]
# 默认字符集
default-character-set=utf8mb4
[client]
port = 3306
socket = /tmp/mysql.sock
[mysqld]
port = 3306
user = mysql
socket = /tmp/mysql.sock
# 安装目录
basedir = /opt/mysql
# 数据存放目录
optdir = /opt/mysql/mysqlopt
log-bin = /opt/mysql/mysql-bin
innodb_opt_home_dir =/opt/mysql/mysql-bin
innodb_log_group_home_dir =/opt/mysql/mysql-bin
#日志及进程数据的存放目录
log-error =/opt/mysql/logs/error.log
pid-file =/opt/mysql/run/mysql.pid
# 服务端使用的字符集默认为8比特编码
character-set-server=utf8mb4
lower_case_table_names=1
autocommit =1
sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION
##################以上要修改的########################
skip-external-locking
key_buffer_size = 256M
max_allowed_packet = 16M
table_open_cache = 1024
sort_buffer_size = 4M
net_buffer_length = 8K
read_buffer_size = 4M
read_rnd_buffer_size = 512K
myisam_sort_buffer_size = 64M
thread_cache_size = 128
#######################密码验证#########################
#skip_name_resolve=1
######################################################
tmp_table_size = 128M
explicit_defaults_for_timestamp = true
max_connections = 5000
max_connect_errors = 5000
open_files_limit = 65535
#plugin-load=validate_password.so
binlog_format=mixed
#log_replica_updates=1
binlog_expire_logs_seconds =864000
#slow_query_log = 1
lower_case_table_names=1
# 创建新表时将使用的默认存储引擎
default_storage_engine = InnoDB
innodb_opt_file_path = ibopt1:10M:autoextend
innodb_buffer_pool_size = 1024M
innodb_redo_log_capacity = 256M
innodb_log_buffer_size = 8M
innodb_flush_log_at_trx_commit = 1
innodb_lock_wait_timeout = 50
transaction-isolation=READ-COMMITTED
#mysql主备配置
#server-id=2 #mysql主备配置 #设置主服务器的ID(不能和别的服务器重复,建议使用ip的最后一段)
#sync_binlog=1 #,值可设置 1、500、1000;可自己根据测试性能配置
#binlog_expire_logs_seconds =7
#binlog-ignore-db=mysql # 表示不同步mysql库
#binlog-ignore-db=information_schema # 表示不同步information_schema库
#binlog-ignore-db=performance_schema
#binlog-ignore-db=sys
###binlog-do-db= #这个表示只同步某库 (如果没有此项,表示同步所有的库)
[mysqldump]
quick
max_allowed_packet = 16M
[myisamchk]
key_buffer_size = 256M
sort_buffer_size = 4M
read_buffer = 2M
write_buffer = 2M
[mysqlhotcopy]
interactive-timeout
[client]
default-character-set=utf8
EOF
赋权
chown -R mysql:root /etc/my.cnf
chmod 644 /etc/my.cnf
chown -R mysql:mysql /data/mysql
数据库初始化
cd /data/mysql
./bin/mysqld --initialize --user=mysql --basedir=/data/mysql --datadir=/data/mysql/mysqldata
创建启动服务文件mysql.service
vim /usr/lib/systemd/system/mysql.service
[Unit]
Description=MySQL Server
Documentation=man:mysqld(8)
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= /data/mysql/bin/mysqld --defaults-file=/etc/my.cnf
LimitNOFILE = 5000
#Restart=on-failure
#RestartPreventExitStatus=1
#PrivateTmp=false
chmod 755 /usr/lib/systemd/system/mysql.service
systemctl daemon-reload
systemctl start mysql
systemctl status mysql
添加环境变量
vim /etc/profile
#MYSQL
export ES_HOME=/data/mysql
export PATH=$ES_HOME/bin:$PATH
修改密码及创建其它用户
cat /data/mysql/logs/error.log
初始密码:ufu/4)u91E*&
mysql -uroot -p
alter user 'root'@'localhost' identified by '管理员密码';
create user 'root'@'%' identified by '管理员密码';
grant all privileges on *.* to 'root'@'%' with grant option;
create user 'business'@'%' identified by '密码';
grant all privileges on *.* to 'business'@'%' with grant option;
create user 'nacos'@'%' identified by '密码';
grant all privileges on *.* to 'nacos'@'%' with grant option;
flush privileges;
创建数据库
create database 数据库名 character set 'utf8mb4' collate 'utf8mb4_0900_ai_ci';