一、安装依赖包: yum -y install cmake bison git ncurses-devel libaio gcc gcc-c++ lrzsz vim yum remove mariadb* -y 二、软件下载: cd /opt wget --no-check-certificate https://dev.mysql.com//Downloads/MySQL-5.7/mysql-5.7.21-linux-glibc2.12-x86_64.tar.gz tar -zxvf mysql-5.7.21-linux-glibc2.12-x86_64.tar.gz -C /usr/local cd /usr/local mv mysql-5.7.21-linux-glibc2.12-x86_64 mysql-5.7.21 三、创建一个mysql用户和组 groupadd mysql useradd -r -g mysql -s /bin/false mysql -r:建立系统账号 -g:指定用户所属的起始群组 -s:指定用户登入后所使用的shell -d:指定用户登入时的启始目录。 -G:指定用户所属的附加群组 注意此用户仅用于运行mysql服务,而不是登录,因此使用useradd -r和-s /bin/false命令选项来创建对服务器主机没有登录权限的用户。 四、配置环境变量 echo "export PATH=$PATH:/usr/local/mysql-5.7.21/bin" >> /etc/profile source /etc/profile 五、配置数据库目录 数据目录:/usr/local/mysql-5.7.21/data 错误日志log-error:/usr/local/mysql-5.7.21/log/mysql_error.log ###这个文件需要创建。 二进制日志log-bin:/usr/local/mysql-5.7.21/log/mysql_bin.log 慢查询日志slow_query_log_file:/usr/local/mysql-5.7.21/log/mysql_slow_query.log 套接字socket文件:/usr/local/mysql-5.7.21/run/mysql.sock pid文件:/usr/local/mysql-5.7.21/run/mysql.pid 创建目录: mkdir -p /usr/local/mysql-5.7.21/{data,log,etc,run} touch /usr/local/mysql-5.7.21/log/mysql_error.log chown -R mysql:mysql /usr/local/mysql-5.7.21 chmod -R 777 /usr/local/mysql-5.7.21/{data,log,etc,run} 六、配置my.cnf文件 vim /etc/my.cnf [mysqld] port = 3306 socket = /usr/local/mysql-5.7.21/run/mysql.sock pid_file = /usr/local/mysql-5.7.21/run/mysql.pid basedir = /usr/local/mysql-5.7.21 datadir = /usr/local/mysql-5.7.21/data default_storage_engine = InnoDB max_allowed_packet = 128M max_connections = 2048 open_files_limit = 65535 skip-name-resolve lower_case_table_names=1 character-set-server = utf8mb4 collation-server = utf8mb4_unicode_ci init_connect='SET NAMES utf8mb4' innodb_buffer_pool_size = 256M innodb_log_file_size = 128M innodb_file_per_table = 1 innodb_flush_log_at_trx_commit = 1 key_buffer_size = 16M log-error = /usr/local/mysql-5.7.21/log/mysql_error.log log-bin = /usr/local/mysql-5.7.21/log/mysql_bin.log slow_query_log = 1 slow_query_log_file = /usr/local/mysql-5.7.21/log/mysql_slow_query.log long_query_time = 2 tmp_table_size = 16M max_heap_table_size = 16M query_cache_size = 256M server-id=11 enforce_gtid_consistency = on gtid_mode = on [client] port = 3306 socket = /usr/local/mysql-5.7.21/run/mysql.sock 七、初始化 mysqld --initialize --user=mysql --basedir=/usr/local/mysql-5.7.21/ --datadir=/usr/local/mysql-5.7.21/data/ 此时会生成一个临时密码,可以在mysql_error.log文件找到 grep 'temporary password' /usr/local/mysql-5.7.21/log/mysql_error.log生成ssl mysql_ssl_rsa_setup --basedir=/usr/local/mysql-5.7.21 --datadir=/usr/local/mysql-5.7.21/data/ 八、配置服务,使用systemctl管理 vim /usr/lib/systemd/system/mysqld.service 文件内容如下 # systemd service file for MySQL forking server [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 Type=forking PIDFile=/usr/local/mysql-5.7.21/run/mysql.pid # Disable service start and stop timeout logic of systemd for mysqld service. TimeoutSec=0 # Execute pre and post scripts as root PermissionsStartOnly=true # Needed to create system tables #ExecStartPre=/usr/bin/mysqld_pre_systemd # Start main service ExecStart=/usr/local/mysql-5.7.21/bin/mysqld --daemonize --pid-file=/usr/local/mysql-5.7.21/run/mysql.pid # Use this to switch malloc implementation EnvironmentFile=-/etc/sysconfig/mysql # Sets open_files_limit LimitNOFILE = 65535 Restart=on-failure RestartPreventExitStatus=1 PrivateTmp=false 让systemctl加载配置服务 systemctl daemon-reload systemctl enable mysqld.service systemctl start mysqld.service
九、用初始密码登录MySQL,再修改密码。
![]()
![]()
![]()
__________________________ END ________________________________________________