MySQL8.0版本比MySQL5.7要快2倍,更快的性能和大量的改进
MySQL8.0版本简介 https://www.cnblogs.com/mr7664/articles/9857621.html
MySQL下载地址:http://dev.mysql.com/get/Downloads/MySQL-8.0.11/mysql-8.0.11.tar.gz(建议)
或者
wget -c http://dev.mysql.com/get/Downloads/MySQL-8.0.11/mysql-8.0.11.tar.gz/from/http://cdn.mysql.com/
yum -y install wget cmake gcc gcc-c++ ncurses ncurses-devel libaio-devel openssl openssl-devel bison
cd /data/Software
(你刚才把压缩包复制到的位置)
tar -zxvf mysql-8.0.11.tar.gz
用作软件存放目录
mkdir /etc/mysql
用作数据存放目录
mkdir -p /data/mysqldata/3306
跳转到刚才解压好的目录下
cd /data/Software/mysql-8.0.11
cmake -DCMAKE_INSTALL_PREFIX=/etc/mysql -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DENABLED_LOCAL_INFILE=ON -DWITH_INNODB_MEMCACHED=ON -DWITH_SSL=system -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_FEDERATED_STORAGE_ENGINE=1 -DWITH_BLACKHOLE_STORAGE_ENGINE=1 -DWITHOUT_EXAMPLE_STORAGE_ENGINE=1 -DWITH_PERFSCHEMA_STORAGE_ENGINE=1 -DCOMPILATION_COMMENT="zsd edition" -DDOWNLOAD_BOOST=1 -DWITH_BOOST=/tmp -DMYSQL_UNIX_ADDR=/data/mysqldata/3306/mysql.sock -DMYSQL_UNIX_ADDR=/data/mysqldata/3306/mysql.sock -DSYSCONFDIR=/data/mysqldata/3306
dd if=/dev/zero of=/swapfile bs=64M count=16
注:block_size、number_of_block 大小可以自定义,比如 bs=64M count=16代表设置 1G 大小 SWAP 分区。
mkswap /swapfile
swapon /swapfile
出现error,内存不足,使用临时分区。毕竟我的阿里云是1核+2G内存。。
make
make install
make clean
swapoff /swapfile
rm /swapfile
cd/home
vipw
删除对应用户名:wq保存
cd /home
vipw -s
删除对应用户组:wq!强制保存
查看用户组
cat /etc/group
vi /etc/group
再次删除:wq保存
groupadd mysql
useradd -g mysql mysql
vi /etc/security/limits.conf
在文档底下添加
mysql soft nproc 65536
mysql hard nproc 65536
mysql soft nofile 65536
mysql hard nofile 65536
su - mysql
ulimit -a
su root
mkdir -p /data/mysqldata/{3306/{data,tmp,binlog,innodb_ts,innodb_log},backup,scripts}
chown -R mysql:mysql /data/mysqldata
su - mysql
vi /data/mysqldata/3306/my.cnf
[client]
port = 3306
socket = /data/mysqldata/3306/mysql.sock
# The MySQL server
[mysqld]
port = 3306
user = mysql
socket = /data/mysqldata/3306/mysql.sock
pid-file = /data/mysqldata/3306/mysql.pid
basedir = /etc/mysql
datadir = /data/mysqldata/3306/data
tmpdir = /data/mysqldata/3306/tmp
open_files_limit = 60000
explicit_defaults_for_timestamp
server-id = 1203306
lower_case_table_names = 1
character-set-server = utf8
federated
#sql_mode=STRICT_TRANS_TABLES
max_connections = 1000
max_connect_errors = 100000
interactive_timeout = 86400
wait_timeout = 86400
sync_binlog=0
back_log=100
default-storage-engine = InnoDB
log_slave_updates = 1
#*********** Logs related settings ***********
log-bin = /data/mysqldata/3306/binlog/mysql-bin
binlog_format= mixed
binlog_cache_size=32m
max_binlog_cache_size=64m
max_binlog_size=512m
long_query_time = 1
log_output = FILE
log-error = /data/mysqldata/3306/mysql-error.log
slow_query_log = 1
slow_query_log_file = /data/mysqldata/3306/slow_statement.log
#log_queries_not_using_indexes
general_log = 0
general_log_file = /data/mysqldata/3306/general_statement.log
#expire-logs-days = 14
binlog_expire_logs_seconds = 1728000
relay-log = /data/mysqldata/3306/binlog/relay-bin
relay-log-index = /data/mysqldata/3306/binlog/relay-bin.index
#****** MySQL Replication New Feature*********
master-info-repository=TABLE
relay-log-info-repository=TABLE
relay-log-recovery
#*********** INNODB Specific options ***********
innodb_buffer_pool_size = 2048M
transaction-isolation=REPEATABLE-READ
innodb_buffer_pool_instances = 8
innodb_file_per_table = 1
innodb_data_home_dir = /data/mysqldata/3306/innodb_ts
innodb_data_file_path = ibdata1:2048M:autoextend
innodb_thread_concurrency = 8
innodb_log_buffer_size = 16M
innodb_log_file_size = 128M
innodb_log_files_in_group = 3
innodb_log_group_home_dir = /data/mysqldata/3306/innodb_log
innodb_flush_log_at_trx_commit = 2
innodb_max_dirty_pages_pct = 70
innodb_flush_method=O_DIRECT
[mysql]
no-auto-rehash
default-character-set=gbk
prompt = (\u@\h) [\d]>\_
/etc/mysql/bin/mysqld --defaults-file=/data/mysqldata/3306/my.cnf --initialize --user=mysql
/etc/mysql/bin/mysqld_safe --defaults-file=/data/mysqldata/3306/my.cnf --user=mysql
cat /data/mysqldata/3306/mysql-error.log
chown -R mysql:mysql /etc/mysql
/etc/mysql/bin/mysqld_safe --defaults-file=/data/mysqldata/3306/my.cnf --user=root
cat /data/mysqldata/3306/mysql-error.log
find / - name errmsg.sys
/etc/mysql/bin/mysqld_safe --defaults-file=/data/mysqldata/3306/my.cnf --user=mysql
cat /data/mysqldata/3306/mysql-error.log
find / -name mysql-bin.index
vi /data/mysqldata/3306/my.cnf
cd /data/mysqldata/3306/
ls
mkdir -p /data/mysqldata/{3306/{data,tmp,binlog,innodb_ts,innodb_log},backup,scripts}
chown -R mysql:mysql /data/mysqldata
/etc/mysql/bin/mysqld --defaults-file=/data/mysqldata/3306/my.cnf --initialize --user=mysql
/etc/mysql/bin/mysqld_safe --defaults-file=/data/mysqldata/3306/my.cnf --user=mysql
ps -ef|grep mysql(查看pts/几)
pkill -kill -t pts/(几)
/etc/mysql/bin/mysqld_safe --defaults-file=/data/mysqldata/3306/my.cnf --user=mysql
cat /data/mysqldata/3306/mysql-error.log
grep 'password' /data/mysqldata/3306/mysql-error.log
/etc/mysql/bin/mysql -u root -p
设置为本地登录权限,使用sha256_password加密,360天密码过期
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'root' PASSWORD EXPIRE INTERVAL 360 DAY;
查看user
mysql> select user,host from mysql.user;
vi /etc/profile.d/mysql.sh
将下面这句放入新建的文件中
export PATH=$PATH:/etc/mysql/bin
执行
source /etc/profile.d/mysql.sh
复制mysql.server
cp /etc/mysql/support-files/mysql.server /etc/init.d/mysql
添加可执行权限
chmod +x /etc/init.d/mysql
设置开机自动启动
systemctl enable mysql
mysql> use mysql;
mysql> select host,user,authentication_string,plugin from user;
mysql> update user set host='%' where user='root';
mysql> flush privileges;
systemctl status firewalld
systemctl start firewalld
systemctl stop firewalld
pkill -f firewalld
systemctl start firewalld
systemctl status firewalld
firewall-cmd --zone=public --add-port=22/tcp --permanent
firewall-cmd --zone=public --add-port=3306/tcp --permanent
firewall-cmd --zone=public --add-port=80/tcp --permanent
systemctl restart firewalld
firewall-cmd --list-ports