#环境准备
su - root--查看当前防火墙状态systemctl status firewalld--关闭当前防火墙systemctl stop firewalld--设置开机防火墙不启动systemctl disable firewalld#yum源安装yum install -y libaio-develyum -y install numactl
#清理历史环境
rpm -qa |grep mariadbyum -y install numactlyum remove mariadb-libs.x86_64
#创建用户和组
useradd mysql -s /sbin/nologin[root@smkrac111 mysql]# id mysqluid=1005(mysql) gid=1007(mysql) groups=1007(mysql)
#上传并解压 MySQL软件到/app/
[root@db01 app]# mv mysql-5.7.28-linux-glibc2.12-x86_64 mysql[root@db01 app]# ls -l /app/mysql/
#创建相关目录
#创建软件目录mkdir -p /app/database#创建数据目录mkdir -p /data/3306#创建日志目录mkdir -p /binlog/3306
#设置权限
chown -R mysql:mysql /app/ /data/ /binlog
#设置环境变量
vi /etc/profile#底部添加一行export PATH=/app/database/mysql/bin:$PATH#生效配置source /etc/profile
cd
#初始化系统库表
mysqld --initialize-insecure --user=mysql --basedir=/app/database/mysql --datadir=/data/3306================================================================================================初始化过程(成功)======================================================================================2020-07-31T02:14:39.376798Z 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).2020-07-31T02:14:39.696143Z 0 [Warning] InnoDB: New log files created, LSN=457902020-07-31T02:14:39.767299Z 0 [Warning] InnoDB: Creating foreign key constraint system tables.2020-07-31T02:14:39.832986Z 0 [Warning] No existing UUID has been found, so we assume that this is the first time that this server has been started. Generating a new UUID: 96cf6b3f-d2d3-11ea-bcdd-005056b18ce8.2020-07-31T02:14:39.835927Z 0 [Warning] Gtid table is not ready to be used. Table 'mysql.gtid_executed' cannot be opened.2020-07-31T02:14:41.268767Z 0 [Warning] CA certificate ca.pem is self signed.2020-07-31T02:14:41.533924Z 1 [Warning] root@localhost is created with an empty password ! Please consider switching off the --initialize-insecure option.===============================================================================================================================================================================================#容易遇到的报错[error] --initialize specified but the data directory has file in it. Aborting#处理rm -rf /data/3306/*
#补充:初始化方式:
(1)mysqld --initialize --user=mysql --basedir=/app/database/mysql --datadir=/data/33061.初始化完成后,会有12位临时密码,但是必须在使用MySQL之前重置这个密码2.密码管理使用严格模式:3种密码复杂度(2)mysqld --initialize-insecure --user=mysql --basedir=/app/database/mysql --datadir=/data/33065.6版本初始化方式/app/database/mysql/scripts/mysql_install_db --user=mysql --basedir=/app/database/mysql --datadir=/data/3306
#配置文件设置
cat >/etc/my.cnf <<EOF[mysqld]user=mysqlbasedir=/app/database/mysqldatadir=/data/3306server_id=6port=3306socket=/tmp/mysql.sockexplicit_defaults_for_timestamp=trueinnodb_file_per_table=oncharacter_set_server=utf8log_bin=/data/mysql/1.000001expire_logs_days=30slow_query_log=onlong_query_time=3log_queries_not_using_indexes=onmax_connections=500symbolic-links=0innodb_page_size=16384innodb_buffer_pool_size=100000000[mysql]socket=/tmp/mysql.sockEOF
准备MySQL的启动脚本
cd /app/database/mysql/support-files#拷贝MySQL的启动脚本值系统软件管理目录中cp mysql.server /etc/init.d/mysqld
使用systemd管理mysql
cat >/etc/systemd/system/mysqld.service <<EOF[Unit]Description=MySQL ServerDocumentation=man:mysqld(8)Documentation=http://dev.mysql.com/doc/refman/en/using-systemd.htmlAfter=network.targetAfter=syslog.target[Install]WantedBy=multi-user.target[Service]User=mysqlGroup=mysqlExecStart=/app/database/mysql/bin/mysqld --defaults-file=/etc/my.cnfLimitNOFILE = 5000EOF
启动MySQL数据库
#centos 6 (7也可以)service mysqld start#centos 7chkconfig --add mysqldsystemctl start mysqld
修改MySQL密码
mysql
set password=password('mysql');
mysql 多实例安装
创建目录
mkdir -p /data/330{7,8,9}/datamkdir -p /binlog/330{7,8,9}chown -R mysql:mysql /data/330{7,8,9}/datachown -R mysql:mysql /binlog/330{7,8,9}
修改配置文件
cat > /data/3307/my.cnf <<EOF[mysqld]basedir=/app/database/mysqldatadir=/data/3307/datasocket=/data/3307/mysql.socklog_error=/data/3307/mysql.logport=3307server_id=7log_bin=/data/3307/mysql-binEOFcat > /data/3308/my.cnf <<EOF[mysqld]basedir=/app/database/mysqldatadir=/data/3308/datasocket=/data/3308/mysql.socklog_error=/data/3308/mysql.logport=3308server_id=8log_bin=/data/3308/mysql-binEOFcat > /data/3309/my.cnf <<EOF[mysqld]basedir=/app/database/mysqldatadir=/data/3309/datasocket=/data/3309/mysql.socklog_error=/data/3309/mysql.logport=3309server_id=9log_bin=/data/3309/mysql-binEOF
初始化数据
mv /etc/my.cnf /etc/my.cnf.bakmysqld --initialize-insecure --user=mysql --datadir=/data/3307/data --basedir=/app/database/mysqlmysqld --initialize-insecure --user=mysql --datadir=/data/3308/data --basedir=/app/database/mysqlmysqld --initialize-insecure --user=mysql --datadir=/data/3309/data --basedir=/app/database/mysql
准备启动脚本
cat >/etc/systemd/system/mysqld3307.service <<EOF[Unit]Description=MySQL ServerDocumentation=man:mysqld(8)Documentation=http://dev.mysql.com/doc/refman/en/using-systemd.htmlAfter=network.targetAfter=syslog.target[Install]WantedBy=multi-user.target[Service]User=mysqlGroup=mysqlExecStart=/app/database/mysql/bin/mysqld --defaults-file=/data/3307/my.cnfLimitNOFILE = 5000EOFcat >/etc/systemd/system/mysqld3308.service <<EOF[Unit]Description=MySQL ServerDocumentation=man:mysqld(8)Documentation=http://dev.mysql.com/doc/refman/en/using-systemd.htmlAfter=network.targetAfter=syslog.target[Install]WantedBy=multi-user.target[Service]User=mysqlGroup=mysqlExecStart=/app/database/mysql/bin/mysqld --defaults-file=/data/3308/my.cnfLimitNOFILE = 5000EOFcat >/etc/systemd/system/mysqld3309.service <<EOF[Unit]Description=MySQL ServerDocumentation=man:mysqld(8)Documentation=http://dev.mysql.com/doc/refman/en/using-systemd.htmlAfter=network.targetAfter=syslog.target[Install]WantedBy=multi-user.target[Service]User=mysqlGroup=mysqlExecStart=/app/database/mysql/bin/mysqld --defaults-file=/data/3309/my.cnfLimitNOFILE = 5000EOF
启动多实例
systemctl start mysqld3307systemctl start mysqld3308systemctl start mysqld3309
检查
netstat -tulnp
