Linux系统如何部署MySQL数据库

一、前期准备

检查环境配置及软件准备 

检测项检测命令备注
服务器内存
free -m
硬盘
df -h
seLinux
getenforce	
Disabled指关闭,Enforcing指开启
文件描述符大小
ulimit -n

其他优化
Other

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数据库安装完成,希望可以帮助到你!完结撒花🎉🎉🎉-------

  • 26
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值