一、前期准备
检查环境配置及软件准备
检测项 | 检测命令 | 备注 |
---|---|---|
服务器内存 | | |
硬盘 | | |
seLinux | | Disabled指关闭,Enforcing指开启 |
文件描述符大小 | | |
其他优化 | |
1、free -m 命令说明
①total 内存总数; ②used 已经使用的内存数; ③free 空闲的内存数;
关系:total = used + free
Swap 交换分区就不详细说了,理解成windows的虚拟内存就行
2、dh -f 命令说明
文件系统:简单理解为设备即可,这个路径不是硬盘上的路径
容量:这个设备的可用空间
已用、可用、以用%:字面意思
挂载点:硬盘的挂载路径,此路径下的文件夹,比如/dev/mapper/centos-home可用418G,指的就是整个/dev/mapper/centos-home目录大小有910G。
3、SeLinux说明
getenforce命令可用查启用状态,这个最好关掉,影响未知,功能说起来太麻烦了,简单理解就当它是Windows的是否管理员身份那个东西即可,就管理员身份运行与非管理员身份运行的区别很大,难搞的很!
关闭方法:
① 临时法:
setenforce 0
此方法是临时关闭,重启后又启动了,所以如果暂时不想重启机器,配合下面永久法操作。
② 永久法:(没有vim可以用vi)
vim /etc/selinux/config
修改config文件参数
修改SELINUX=enforcing为 SELINUX=disabled
然后重启服务器即可,配合上面的临时法可以暂时不用重启,反正下次重启后就生效了。
4、文件描述符大小
通过ulimit -n查看,默认是1024,当服务高并发时1024可能不够用,常见于开启多个tomcat跑程序时,或者mysql多主从时。
调整方法:
vim /etc/security/limits.conf
最下面添加:
* soft noproc 65535
* hard noproc 65535
* soft nofile 65535
* hard nofile 65535
然后重启服务器。
5、其它优化
内容太多,不详细解释,可以百度,常态性优化,正常做就行。例如:
vim /etc/sysctl.conf
最下面增加如下:
net.ipv4.ip_local_port_range= 9000 65500
net.ipv4.icmp_echo_ignore_broadcasts = 1
net.ipv4.conf.all.rp_filter = 1
net.ipv4.tcp_syncookies = 1
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_tw_recycle = 1
net.ipv4.tcp_fin_timeout = 30
6、准备软件
MySQL安装包、winScp等远程工具
二、安装部署
1、清理环境
由于服务器系统可能自带部分MySQL的程序,因此安装的时候会干扰新安装的程序,因此需要进行环境清理。
注意:卸载只针对新服务器,如何原服务器上存在有用的MySQL数据库在上面,确认好是否有用在清理。
rpm -qa|grep -i mysql
yum list installed mysql*
可以看到已有mysql5.7版,卸载它
注意:下面的命令,不要直接贴命令去执行!!!看清楚后面的版本号在执行!
rpm -ev --nodeps mysql-community-release-el7-5.noarch
rpm -ev --nodeps mysql-community-common-5.7.21-1.e17.x86_64
rpm -ev --nodeps mysql-community-client-5.7.21-1.e17.x86_64
rpm -ev --nodeps mysql-community-libs-5.7.21-1.e17.x86_64
rpm -ev --nodeps community-server-5.7.21-1.e17.x86_64
执行:find / -name mysql
上面查出来的目录,用 rm -rf 删除
最后,检查下 /etc/my.cnf 这个文件有没有,如果有得话删掉。
2、正式安装
1、创建mysql目录
mkdir -p /opt/data // 新建文件夹,按路径
mkdir -p /opt/data/tool // 新建文件夹,按路径
2、上传数据库安装包到服务器的 /opt/data/tool 目录,
3、进入/opt/data/tool目录
cd /opt/data/tool //进入指定路径
4、查看文件是否已上传
ls -l //查看目录中的文件
5、解压MySQL安装包,下面命令解压完后原文件会删掉,我们只用tar的就行
xz -d XXX.tar.xz // 解压msql的xz文件并删除原文件。(这里只是示例,如果大家的安装包是zip,那就unzip就可以,视情况而定)
解压tar文件,此命令会在目录下生成一个同名的文件夹,里面就是mysql的主程序
tar -xvf XXX // 解压刚刚已经解压一层的mysql的tar文件
移动文件夹到/opt/data目录并改名mysql
mv XXX /opt/data/mysql // 移动解压出来的文件夹并改名
3、权限处理
1、创建mysql用户组与用户,并分配目录给mysql用户
groupadd mysql //创建用户组
useradd -g mysql mysql //创建新用户mysql,并分配给mysql用户组,前面一个是用户组,后面是用户
2、改变/opt/data目录权限为mysql用户
chown -R mysql.mysql /opt/data/ //将/opt/data/目录及子目录的权限用户组都改为mysql用户
最终结果如下图示
4、MySQL配置
上传mysql配置文件到/etc/目录下,可以写好上传,本文中的配置是标准配置,可以直接上传使用的。但需要检查相关部署路径!
注意:my.cnf文件需要放到/etc/目录下
文件内容参考下面附件
[mysqld]
# 设置3306端口
port=3306
# 设置可连接IP:0.0.0.0是不限制IP
bind-address=0.0.0.0
# # 允许最大连接数
max_connections=3600
# # 允许连接失败的次数。这是为了防止有人从该主机试图攻击数据库系统
max_connect_errors=10
# # 服务端使用的字符集默认为UTF8
character-set-server=utf8
# # 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
# # 默认使用“mysql_native_password”插件认证
default_authentication_plugin=mysql_native_password
symbolic-links=0
lower_case_table_names=1
sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION
skip-name-resolve
#skip-grant-tables
#设置数据库事务隔离级别
transaction_isolation=READ-COMMITTED
#设置最大长度(注意路径问题)
group_concat_max_len=102400
basedir=/opt/data/mysql
datadir=/opt/data
socket=/opt/data/mysql/mysql.sock
log-error=/opt/data/mysql/mysqld.log
pid-file=/opt/data/mysql/mysqld.pid
[mysql]
# 设置mysql客户端默认字符集
default-character-set=utf8
socket=/opt/data/mysql/mysql.sock
[client]
# # 设置mysql客户端连接服务端时默认使用的端口
port=3306
# 设置mysql客户端默认字符集
default-character-set=utf8
socket=/opt/data/mysql/mysql.sock
5、MySQL初始化
进入到mysql的bin目录,执行初始化语句,注意,此处脚本中basedir与datadir要与my.cnf文件中的保持一致,我们采用的是数据文件与运行文件分开方式部署的,所以路径会单独指定。
cd /opt/data/mysql/bin
注意:按照实际情况确认是否需要安装插件
yum install libaio-devel.x86_64 //如果缺少插件可安装,按照实际情况选择是否安装即可
注意:路径写实际路径即可
./mysqld --initialize --user=mysql --basedir=/opt/data/mysql --datadir=/opt/data
关键:
打开/opt/data/mysql/mysqld.log文件,里面有初始化后的数据库root密码,注意这个路径是之前配置中的路径。
将新的MySQL服务复制到init.d目录下,如果提示覆盖,输入yes
cp /opt/data/mysql/support-files/mysql.server /etc/init.d/mysqld
分配执行权限,并加入到开机启动中
chmod +x /etc/init.d/mysqld //添加执行权限
chkconfig --add mysqld //添加到服务启动项
chkconfig --list mysqld //查看服务启动列表
6、配置环境变量
修改全局环境变量,添加mysql环境变量,在/etc/profile最后一行加上mysql的环境变量,按照实际路径进行配置。
vim /etc/profile //全局环境变量文件
文件的最下面添加
##########################mysql-path#################
export PATH=$PATH:/opt/data/mysql/bin:/opt/data/mysql/lib
export PATH
保存并退出,然后生效环境变量文件
source /etc/profile
7、MySQL状态
以上操作完成后启动mysql,
service mysql start //启动命令
service mysql stop //停止命令
service mysql status //查看状态命令
service mysql restart //重启mysql
首先查看mysql运行状态。如下图所示,说明mysql未启动
启动mysql再查看状态,如下图所示,说明mysql已启动成功
三、登录数据库并修改初始化密码
1、登录数据库
登录命令
mysql -uroot -p //回车后输入数据库密码,也就是上面提过的密码
登陆成功后修改数据库密码,此处密码自行设定,推荐数字大小写符号的组合,例如:Aa123456!@##
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'Aa123456!@#';
flush privileges; //刷新数据
默认mysql用户是不允许远程访问的,需要对用户进行修改,通过下面语句查询
use mysql; //要访问那个库都先use 库名
select user,host from mysql.user;
host中localhost说明只允许本地访问
修改root用户允许远程访问
update user set host='%' where user='root';
flush privileges; //刷新权限
再次运行上面的语句查看已经允许访问,发现host已经修改,然后用远程连试试。
-------🎉🎉🎉至此,MySQL数据库安装完成,希望可以帮助到你!完结撒花🎉🎉🎉-------