image
不登录可以直接下载,下载后上传至服务器即可;或者直接右击复制下载地址,在服务器用wget命令下载。
image
image
2、解压安装二进制tar,gz压缩包
解压刚刚下载的tar.gz 压缩文件,并移动至/usr/local/mysql
shell> tar -xvf mysql-5.7.23-linux-glibc2.12-x86_64.tar.gzshell> mv mysql-5.7.23-linux-glibc2.12-x86_64 /usr/local/mysql
安装依赖命令
shell> yum install libaio
3、创建mysql用户、用户组、配置环境变量
shell> groupadd -g 27 -o -r mysql #注释:groupadd -g27 和 -o 选项用于分配一个非唯一的 group ID (GID), -r 选项使组成为系统组。shell> useradd -M -N -g mysql -o -r -d /usr/local/mysql/data -s /bin/false -c "MySQL Server" -u 27 mysql#注释 -M 选项为防止创建用户主目录# -N 选项表示应该将用户添加到 -g 选项指定的group中。# -o 和 -u 27选项分配一个非唯一用户ID (UID)。# -r 和 -s /bin/false 选项创建的用户不需要登录服务器主机。mysql用户仅用于所有权目的,而不用于登录。# -d 选项指定用户登录目录,该目录设置为MySQL数据目录路径。此次安装 本机mysql的数据目录为 /usr/local/mysql/data (安装目录可根据实际需求更改)# -c 选项指定了一个描述,mysql用户 的注释 shell> export PATH=/usr/local/mysql/bin:$PATH #将 mysql bin目录添加至系统环境变量
创建用于导入和导出操作的安全目录
为了限制文件特权的范围,创建一个用户可以安全地使用文件特权进行导入和导出操作的目录。在此部署中,创建的目录名为mysql-files
shell> cd /usr/local/mysql #进入mysql目录shell> mkdir mysql-files #创建文件夹shell> chown mysql:mysql mysql-files #将 mysql-files 文件夹的 所属组、所属用户 配置为 mysql组、mysql用户shell> chmod 750 mysql-files #将 mysql文件夹权限配置为 750 即 所属用户拥有(读、写、执行)权限;所属组拥有(读)权限;其他用户无权限 # (linux文件、文件夹权限本文不做详细讲解)
4、初始mysql配置
创建mysql配置文件、并分配权限
shell> cd /etcshell> touch my.cnf #创建 mysql 配置文件 my.cnfshell> chown root:root my.cnf #将mysql 配置文件的所属组、所属用户 配置为 root组、root用户shell> chmod 644 my.cnf #将mysql配置文件的权限设置为 644 即 所属用户拥有(读、写)权限;所属组拥有(读)权限;其他用户拥有(读)权限shell> vim my.cnf #编辑配置文件 配置内容如下
my.cnf 文件内容
[mysqld] datadir=/usr/local/mysql/data # mysql数据存储目录 socket=/tmp/mysql.sock port=3306 log-error=/usr/local/mysql/data/localhost.localdomain.err user=mysql #固定用户 secure_file_priv=/usr/local/mysql/mysql-files #设置导入导出文件目录 local_infile=OFF #为了避免加载数据的本地版本可能出现的安全问题,请确保默认启用local_infile max_connections = 200 # 支持的最大并发链接数,这个根据实际业务需求去设置 query_cache_size = 100M #指定MySQL查询缓冲区的大小,本机内存为2G 设置100M左右即可 thread_cache_size = 15 # 缓存的最大线程数,本机内存2G 设置15个左右即可 wait_timeout = 20 #(秒)指定一个请求的最大连接时间,默认为28800 (八小时) expire_logs_days = 30 #超过30天的binlog删除 long_query_time = 1 #慢查询时间 超过1秒则为慢查询 slow_query_log_file = /etc/mysql/slow.log #查询日志文件 lower_case_table_names = 1 #不区分大小写
初始化数据目录
shell> cd /usr/local/mysqlshell> mkdir data #床架mysql用于存放数据的文件夹shell> chmod 750 data #设置权限shell> chown mysql:mysql data #分配文件夹 所属组、所属用户shell> bin/mysqld --defaults-file=/etc/my.cnf --initialize #初始化数据目录 #初始化的信息输出到了my.cnf中配置的 log-error 所在的错误日志文件中,其中包括初始的随机密码;结果如下图
image
5、mysql启动服务配置
shell> cd /usr/lib/systemd/systemshell> touch mysqld.service #创建mysql服务文件shell> chmod 644 mysqld.service #配置权限shell> vim mysqld.service #编辑服务文件#=================mysqld.service 文件内容 start=================[Unit] Description=MySQL Server Documentation=man:mysqld(7) 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/data/mysqld.pid #pid文件为 mysql存放数据的文件夹下 TimeoutSec=0 # 为mysqld服务禁用系统的服务启动和停止超时逻辑。 # 启动主服务 指定启动服务文件 默认配置文件 pid文件ExecStart=/usr/local/mysql/bin/mysqld --defaults-file=/etc/my.cnf --daemonize --pid-file=/usr/local/mysql/data/mysqld.pid $MYSQLD_OPTS EnvironmentFile=-/etc/sysconfig/mysql # Sets open_files_limitLimitNOFILE = 5000 Restart=on-failure RestartPreventExitStatus=1 PrivateTmp=false#======================== end ========================================
配置 systemd tmpfiles特性
#配置 systemd tmpfiles特性shell> cd /usr/lib/tmpfiles.dshell> touch mysql.confshell> chmod 644 mysql.confshell> vim mysql.conf#==========mysql.conf 文件内容===============d /usr/local/mysql/data 0750 mysql mysql - #=============== end ================
设置mysql服务开机启动、启动服务、查看服务启动状态、停止服务
shell> systemctl enable mysqld.service #设置服务开机启动 或者 systemctl enable mysqld shell> systemctl start mysqld.service #开启服务shell> systemctl status mysqld.service #查看服务当前状态shell> systemctl stop mysqld.service #停止服务
服务启动成功状态
image
6、重置mysql root账户密码
shell> cd /usr/local/mysql/bin #进入mysql bin目录shell> ./mysql -uroot -p #Enter password: 然后输入刚刚的临时密码 进入mysql命令行mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY '你的密码'; #Query OK, 0 rows affected (0.00 sec) 修改成功
7、开启防火墙端口
shell> firewall-cmd --zone=public --add-port=3306/tcp --permanent # --permanent选项为永久生效,没有此参数重启后失效shell> firewall-cmd --reload #重新加载防火墙
作者:芷恋灬
链接:https://www.jianshu.com/p/02ddf9892d00