mysql是我们开发过程中场景的关系型数据之一。所以一起看看在Linux中通过安装包是怎么安装的。
下载mysql
根据自己的Linux服务器版本下载对应的mysql,案例中我们使用的Centos7。快速通道
注意:mysql有很多自己的产品,我们需要下载的是MySQL Community Service
centos7所以选择Linux-Generic
版本号是5.7.34
系统的是64位,所以选择x86_64
图片.png
区别
i386
i686
x86_64
位数
32
32
64
解压
下载完成后,通过xftp、scp命令行等方式将安装包上传到Linux服务器上,并解压,放在/usr/local/mysql
1、传送文件:scp mysql-5.7.34-linux-glibc2.12-i686.tar.gz 用户名@地址:/路径
2、解压文件:tar -zxvf mysql-5.7.34-linux-glibc2.12-i686.tar.gz
3、进行重命名:mv mysql-5.7.34-linux-glibc2.12-i686 mysql
4、移动对应的目录中:mv mysql-5.7.34 /usr/local/
图片.png
配置信息
1、在mysql目录中创建data目录,用来存放mysql数据库产生的数据。
切换到mysql-5.7.34:cd /usr/local/mysql-5.7.34
创建data目录:mkdir data
2、在mysql目录中创建logs目录,在logs目录中创建文件mysql.log和mysql.sock
切换到mysql-5.7.34:cd /usr/local/mysql-5.7.34
创建logs目录:mkdir logs
切换到logs目录:cd logs
创建mysql.log文件:touch mysql.log
创建mysql.sock文件:touch mysql.sock
3、创建用户及用户组:防止mysql攻击后,造成Linux服务被攻击
创建组:groupadd mysql
创建用户:useradd -r -g mysql mysql
使用:chown -R mysql.mysql /usr/local/mysql-5.7.34
4、基本信息的配置
在/etc/my.cnf中配置如下信息
[mysqld]
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
basedir = /usr/local/mysql-5.7.34/
datadir = /usr/local/mysql-5.7.34/data
socket = /usr/local/mysql-5.7.34/logs/mysql.sock
port = 3306
user = mysql
character-set-server=utf8mb4
log-error = /usr/local/mysql-5.7.34//data/mysql.log
pid-file = /usr/local/mysql-5.7.34/data/mysqld.pid
[client]
# 重置了socket文件,防止登陆的时候报错
socket = /usr/local/mysql-5.7.34/logs/mysql.sock
初始化mysql
进行mysql的安装
/usr/local/mysql-3.7.34/bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql-3.7.34 --datadir=/usr/local/mysql-3.7.34/data --defaults-file=/etc/my.cnf
运行完上述命令之后,会随机产生一个mysql的初始密码。因为我们在/etc/my.cnf中配置了log-error,所以输出的日志在配置的log-error中。
查看log文件
vi /usr/local/mysql-3.7.34/logs/mysql-err.log
显示信息如下:
图片.png
最后一行提醒我们一个临时的密码是:Cy9Wue+dlpKo
启动mysql
我们直接启动mysql的时候,会报没有mysql服务
1、将mysql服务添加到服务列表中
mysql服务在/usr/local/mysql-5.7.34/support-files/mysql.service中。所以添加此服务到默认服务中
cp /usr/local/mysql-5.7.34/support-files/mysql.service /etc/init.d/mysql
2、启动服务
service mysql start
图片.png
截止目前,mysqll已经安装完成。
问题
下载问题
下载的时候,不知道下载什么。打开mysql的下载页面,发现mysql提供了很多的服务,有点迷茫,在这里总结一下下载的内容。
服务
详情
MySQL Community Server
社区版本,开源免费,但不提供官方技术支持
MySQL Enterprise Edition
企业版本,需付费,可以试用30天
MySQL Cluster
集群版,开源免费。可将几个MySQL Server封装成一个Server
MySQL Cluster CGE
高级集群版,需付费
MySQL Workbench
一款专为MySQL设计的ER/数据库建模工具,又分为社区版和商业版
我们通常用的是Community Server,免费开源的。
Community Service根据不同的系统又分为Linux版本、Windows、MAC版本。Linux版本又分为通用、红帽等。
图片.png
初始化结束后,mysql5.7.x直接开启mysql服务的时候,报没有此服务
在安装步骤的时候说过,要先把mysql添加后,才能开启服务。
cp /usr/local/mysql-5.7.34/support-files/mysql.service /etc/init.d/mysql
启动mysql的时候,无法连接到本地的mysql服务的socket
在/etc/my.cnf中,我们需要对使用者进行配置socket,添加一下字段即可
[client]
# 重置了socket文件,防止登陆的时候报错
socket = /usr/local/mysql-5.7.34/logs/mysql.sock
mysql的配置文件可以直接复制上述内容,只需要值进行修改即可。注意:要保证文件的存在。
自定义root密码
登录mysql数据库后,进行修改mysql
第一步:跳转到/mysql-5.7.34/bin目录下,登录mysql数据库
目录跳转:cd /usr/local/mysql-5.7.34/bin
登录:./mysql -u root -p 然后输入临时密码
第二步,修改密码
set password=password("密码")
配置mysql命令到全局变量中
我们登录mysql的时候,还需要跳转到对应的目录中,这样有点繁琐,所以我们要进行全局变量的定义。
/etc/profile中设置
输入Linux命令的时候,会到此文件中进行查询,所以我们要在此文件中进行全局变量的声明。在文件的末尾追加内容
# mysql full param
export MYSQL_HOME=/usr/local/mysql-5.7.34
export PATH=$PATH:$MYSQL_HOME/bin
重新加载/etc/profile文件
source /etc/profile
设置Mysql自启动
我们安装好mysql之后,将Linux关机了。第二天再次打开Linux服务器的时候,发现mysql数据库登录不了了。这是检查原因,发现mysql服务没有开启;所以有必要设置MySQL开机自启动
1、查看是否有mysql服务
chkconfig --list
2、如果没有,需要添加
cp /usr/local/mysql-5.7.34/support-files/mysql.server /etc/init.d/mysql
或
cp /usr/local/mysql-5.7.34/support-files/mysql.server /etc/rc.d/init.d/mysql
/etc/init.d/和/etc/rc.d/init.d/是同一个目录。
如果是按照此教程安装的,这一步可以忽略。
3、赋予mysql服务执行权限
chmod +x /etc/rc.d/init.d/mysql
4、添加服务
chkconfig --add mysql
5、设置服务开机自启动
chkconfig --level 345 mysql on
即开机自启动设置完成。