简介:MySQL是一个关系型数据库管理系统,MySQL 是支持事务,支持主备,支持集群的优秀开源的软件。
1.1 卸载检查
如果使用的是Centos7 ,它自带了Maridb数据库。MariaDB数据库管理系统是MySQL的一个分支,所以为了避免影响,需要卸载它。
[root@host-131 ~]# rpm -qa | grep mariadb
mariadb-libs-5.5.52-1.el7.x86_64
[root@host-131 ~]# yum -y remove mari*
[root@host-131 ~]# rm -rf /var/lib/mysql/*
[root@host-131 ~]# rpm -qa | grep mariadb
1.2 安装依赖包
yum install -y glibc gcc gcc-c++ openssl-devel autoconf automake cmake bison make ncurses-devel numactl numactl-devel
yum install -y libtool-ltdl-devel** zlib* libxml* fiex**
yum install -y libaio*
1.3 下载数据库软件并上传到服务器
下载地址:点击下载
我这边用的是:mysql-8.0.25-el7-x86_64.tar.gz
通过ftp软件上传到服务器(使用什么软件随意,能上传到服务器就行)
1.4 解压mysql软件并移动到/user/local 目录
进入到上传的目录:
tar -xvf mysql-8.0.25-el7-x86_64.tar.gz
mv mysql-8.0.25-el7-x86_64 /usr/local/mysql
1.5 创建用户和组
groupadd mysql
useradd -r -g mysql mysql
1.6 创建目录
mkdir -p /data/mysql/tmp
mkdir -p /data/mysql/data
mkdir -p /data/mysql/etc
mkdir -p /data/mysql/logs
给mysql目录更改拥有组和拥有者
chown -R mysql.mysql /data/mysql
chown -R mysql.mysql /usr/local/mysql
1.7 设置环境变量
vi /etc/profile
末尾添加
export PATH=$PATH:/usr/local/mysql/bin
使生效
source /etc/profile
1.8 修改配置文件
vi /etc/my.cnf
[mysqld]
########basic settings########
server-id = 18 #建议和服务器ip保持一致 例如192.168.1.66 则此处写66
port = 3306
user = mysql
character_set_server=utf8mb4
skip_name_resolve = 1
max_connections = 800
max_connect_errors = 1000
datadir = /data/mysql/data #根据实际情况修改,建议和程序分离存放
transaction_isolation = READ-COMMITTED
explicit_defaults_for_timestamp = 1
join_buffer_size = 512M
tmp_table_size = 512M
tmpdir = /data/mysql/tmp
pid-file = /data/mysql/tmp/mysqld.pi
socket = /tmp/mysql.sock
max_allowed_packet = 1024M
sql_mode = "STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION,NO_ZERO_DATE,NO_ZERO_IN_DATE,ERROR_FOR_DIVISION_BY_ZERO"
interactive_timeout = 1800
wait_timeout = 1800
read_buffer_size = 16M
read_rnd_buffer_size = 32M
sort_buffer_size = 32M
lower_case_table_names=1 #大小写不敏感,linux专属 window服务器直接注释掉
default_time_zone='+8:00'
########log settings########
log_error =/data/mysql/logs/mysqld.log #根据实际情况修改建议和datadir 位于不同物理磁盘
slow_query_log = 1
slow_query_log_file = /data/mysql/logs/slow.log #根据实际情况修改建议和datadir 位于不同物理磁盘
#log_queries_not_using_indexes = 1 #调试数据库的时候打开,此选项将记录所有没走索引的sql语句,不管执行快慢
log_slow_admin_statements = 1
log_slow_slave_statements = 1
#log_throttle_queries_not_using_indexes = 10
########replication settings########
master_info_repository = TABLE
relay_log_info_repository = TABLE
log_bin = /data/mysql/logs/mysql_binlog #根据实际情况修改建议和datadir 位于不同物理磁盘
sync_binlog = 1
gtid_mode = on
enforce_gtid_consistency = 1
log_slave_updates
binlog_format = row
relay_log = /data/mysql/logs/relay.log #根据实际情况修改建议和datadir 位于不同物理磁盘
relay_log_recovery = 1
binlog_gtid_simple_recovery = 1
slave_skip_errors = ddl_exist_errors
########innodb settings########
innodb_log_group_home_dir = /data/mysql/logs/ #根据实际情况修改建议和datadir 位于不同物理磁盘
########semi sync replication settings########
plugin_dir=/usr/local/mysql/lib/plugin #根据实际情况修改
1.9 安装数据库
/usr/local/mysql/bin/mysqld --defaults-file=/etc/my.cnf --initialize --user=mysql
查看日志:
vi /data/mysql/logs/mysqld.log
2021-11-22T11:36:07.179120+08:00 0 [System] [MY-013169] [Server] /usr/local/mysql/bin/mysqld (mysqld 8.0.20) initializing of server in progress as process 2503
2021-11-22T11:36:07.216846+08:00 1 [System] [MY-013576] [InnoDB] InnoDB initialization has started.
2021-11-22T11:36:11.364494+08:00 1 [System] [MY-013577] [InnoDB] InnoDB initialization has ended.
2021-11-22T11:36:11.697981+08:00 0 [Warning] [MY-013501] [Server] Ignoring --plugin-load[_add] list as the server is running with --initialize(-insecure).
2021-11-22T11:36:12.605450+08:00 6 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: VZico+qE8l0M
此时可以看到临时密码(红框),并查看是否有错误产生
1.10 启动数据库
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
service mysqld start
查看运行的数据库进程
ps -ef | grep mysql
登录mysql,输入上方记录的临时密码,进入右图信息,则启动成功:
mysql -u root -p
1.11 修改默认密码并设置远程访问
mysql> use mysql;
mysql> select host from user where user='root';
可以看到当前主机配置信息为localhost.
#identified by 后的root是密码
mysql> alter user user() identified by 'root';
#修改密码
mysql> update user set host = '%' where user ='root';#创建任意ip连接root用户
mysql> flush privileges;#立即生效
mysql> exit;#退出
Bye
service mysqld restart #重启mysql服务(这里不需要)
开放端口
firewall-cmd --zone=public --add-port=3306/tcp --permanent #开放3306端口
重启防火墙
systemctl restart firewalld.service
查看是否开放成功
firewall-cmd --list-ports
显示:3306/tcp 说明成功!
验证远程可连: