先去官网下载好二进制的安装包,下载方法请各位大神自己研究。
安装MySQL
1、解压MySQL安装包
[root@szl-46 ~]# tar xvJf mysql-8.0.15-linux-glibc2.12-x86_64.tar.xz
mysql-8.0.15-linux-glibc2.12-x86_64/bin/myisam_ftdump
mysql-8.0.15-linux-glibc2.12-x86_64/bin/myisamchk
mysql-8.0.15-linux-glibc2.12-x86_64/bin/myisamlog
mysql-8.0.15-linux-glibc2.12-x86_64/bin/myisampack
.........
2、重命名文件并移动到/usr/local/mysql/目录下
[root@szl-46 ~]# mv mysql-8.0.15-linux-glibc2.12-x86_64 /usr/local/mysql
3、为MySQL添加用户组和用户
3.1添加用户组
[root@szl-46 ~]# groupadd mysql
3.2添加用户
[root@szl-46 ~]# useradd -r -g mysql mysql
4、检查是否安装了libaio
[root@szl-46 ~]# rpm -qa | grep libaio
libaio-0.3.109-13.el7.x86_64
libaio-devel-0.3.109-13.el7.x86_64
若没有则执行如下命令进行安装:
[root@szl-46 ~]# yum -y install libaio
5、在 /etc 目录下添加 my.cnf 文件
[root@szl-46 ~]# vi /etc/my.cnf
输入如下配置,保存退出。
[mysql]
default-character-set=utf8mb4
[mysqld]
port = 3306
server_id = 12131401
basedir = /usr/local/mysql
datadir = /usr/local/mysql/data
log_bin = /usr/local/mysql/log/mysql-bin
relay_log = /usr/local/mysql/log/mysql-relay
innodb_log_group_home_dir = /usr/local/mysql/log
tmpdir = /tmp
log-error=/usr/local/mysql/log/error.log
report_host = 10.186.61.40
# BINLOG
binlog_error_action = ABORT_SERVER
binlog_format = row
binlog_checksum = NONE
binlog_rows_query_log_events = 1
log_slave_updates = 1
master_info_repository = TABLE
max_binlog_size = 250M
relay_log_info_repository = TABLE
relay_log_recovery = 1
sync_binlog = 1
# GTID #
gtid_mode = ON
enforce_gtid_consistency = 1
# ENGINE
default_storage_engine = InnoDB
innodb_buffer_pool_size = 128M
innodb_data_file_path = ibdata1:1G:autoextend
innodb_file_per_table = 1
innodb_flush_log_at_trx_commit=1
innodb_flush_method = O_DIRECT
innodb_io_capacity = 200
innodb_log_buffer_size = 64M
innodb_log_file_size = 256M
innodb_log_files_in_group = 2
innodb_max_dirty_pages_pct = 60
innodb_print_all_deadlocks=1
innodb_stats_on_metadata = 0
innodb_strict_mode = 1
# CACHE
tmp_table_size = 32M
table_open_cache = 1024
max_connections = 1000
thread_cache_size = 1024
open_files_limit = 65535
# SLOW LOG
slow_query_log = 1
slow_query_log_file = /usr/local/mysql/log/mysql-slow.log
log_slow_admin_statements = 1
log_slow_slave_statements = 1
long_query_time = 1
6、创建data目录和log目录
[root@szl-46 ~]# cd /usr/local/mysql
[root@szl-46 mysql]# mkdir data
[root@szl-46 mysql]# mkdir log
[root@szl-46 mysql]# ls
bin docs lib LICENSE.router man README.router support-files
data include LICENSE log README share
7、修改当前目录 /usr/local/mysql 用户为mysql
[root@szl-46 mysql]# chown -R mysql:mysql ./
[root@szl-46 mysql]# ll
total 448
drwxr-xr-x 2 mysql mysql 4096 Jan 7 16:15 bin
drwxr-xr-x 2 mysql mysql 6 Jan 7 16:22 data
drwxr-xr-x 2 mysql mysql 86 Jan 7 16:15 docs
drwxr-xr-x 3 mysql mysql 266 Jan 7 16:15 include
drwxr-xr-x 6 mysql mysql 4096 Jan 7 16:15 lib
-rw-r--r-- 1 mysql mysql 335812 Jan 26 2019 LICENSE
-rw-r--r-- 1 mysql mysql 101810 Jan 26 2019 LICENSE.router
drwxr-xr-x 2 mysql mysql 6 Jan 7 16:22 log
drwxr-xr-x 4 mysql mysql 30 Jan 7 16:15 man
-rw-r--r-- 1 mysql mysql 687 Jan 26 2019 README
-rw-r--r-- 1 mysql mysql 700 Jan 26 2019 README.router
drwxr-xr-x 28 mysql mysql 4096 Jan 7 16:15 share
drwxr-xr-x 2 mysql mysql 90 Jan 7 16:15 support-files
8、初始化MySQL
[root@szl-46 mysql]# ./bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql/ --datadir=/usr/local/mysql/data/
配置MySQL
1、设置开机启动
复制启动脚本到资源目录
[root@szl-46 mysql]# cp ./support-files/mysql.server /etc/rc.d/init.d/mysqld
增加MySQL服务控制脚本权限
[root@szl-46 mysql]# chmod +x /etc/rc.d/init.d/mysqld
将 mysqld 服务加入到系统服务
[root@szl-46 mysql]# chkconfig --add mysqld
检查mysqld服务是否已经生效
[root@szl-46 mysql]# chkconfig --list mysqld
Note: This output shows SysV services only and does not include native
systemd services. SysV configuration data might be overridden by native
systemd configuration.
If you want to list systemd services use 'systemctl list-unit-files'.
To see services enabled on particular target use
'systemctl list-dependencies [target]'.
mysqld 0:off 1:off 2:on 3:on 4:on 5:on 6:off
命令输出类似上面的结果。
2、启动Mysql
[root@szl-46 mysql]# service mysqld start
Starting MySQL.. SUCCESS!
3、环境变量配置
将mysql的bin目录加入PATH环境变量,编辑 /etc/profile文件:
[root@szl-46 mysql]# vi /etc/profile
在最下边写入如下内容:
export MYSQL_HOME=/usr/local/mysql
export PATH=$PATH:$MYSQL_HOME/bin
执行命令使其生效
[root@szl-46 mysql]# source /etc/profile
登录MySQL
1、登录Mysql
# mysql -uroot -p(登录密码为初始化的时候显示的临时密码,可以在MySQL错误日志里查看到)
2、修改初始化密码,不然不能进行其他操作,修改语句如下:
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY '123';
3、开启防火墙端口 3306 使其可远程访问
# firewall-cmd --zone=public --add-port=3306/tcp --permanent
# firewall-cmd --reload
4、开启数据库远程连接
mysql> CREATE USER 'root'@'%' IDENTIFIED BY '123';
mysql> GRANT ALL ON *.* TO 'root'@'%';
mysql> ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123';
mysql> FLUSH PRIVILEGES;