昨天刚刚把JDK和tomcat给搭建好,今天就开始搭建数据库了,遇到的问题也蛮需要思考性的,查了好些资料才解决了。
1.下载最新的mysql5.7.21安装包
地址:https://dev.mysql.com/downloads/mysql/
2.连接云服务器远程访问
将下载好的mysql-5.7.21-linux-glibc2.12-x86_64.tar.gz,上传到服务器中(个人上传到的位置是/home/mysql,新建的mysql文件夹:mkdir mysql)。
3.卸载云服务器自带的MariaDB数据库
因为腾讯云服务器有自带的MariaDB数据库,用来取代mysql数据库,所以我们需要先将服务器自带的数据库卸载了,然后安装下载好的mysql数据库。(稍后整理一下MariaDB数据库和mysql数据库的区别)
首先检查是否安装了MariaDB:rpm -qa|grep mariadb
卸载已安装的MariaDB:rpm -e --nodeps mariadb-libs-5.5.52-1.el7.x86_64
再次检查一下是否还有安装:rpm -qa|grep mariadb
结果如下图:
4.创建mysql用户组和xr_start用户
网上在这里有很多人是创建mysql用户的,但经过查询资料和一些网友的说法,这里的用户并不一定是创建mysql用户,而mysql数据库本身内部只要求创建了mysql用户组,并不限制用户的名称,所以本人创建了xr_start用户。
创建mysql用户组:groupadd mysql
创建xr_start用户并添加到mysql用户组中:useradd xr_start -g mysql
创建xr_start用户的密码:passwd xr_start
结果如下图:
5.解压mysql包,并修改名称
解压包的命令:tar -zxvf mysql-5.7.21-linux-glibc2.12-x86_64.tar.gz
个人觉得解压后的名字有点长,所以修改了一下:mv mysql-5.7.21-linux-glibc2.12-x86_64 mysql
6.修改一下mysql文件夹所属用户权限
把当前目录下的文件及目录所属的用户改为xr_start:chown -R -v xr_start .
把当前目录下的文件及目录所属的组改为mysql:chgrp -R mysql .
如图:
7.创建一个目录,用于数据库的存储
在根目录下输入命令:mkdir /home/mysql/mysql/data
8.初始化mysql数据库
在初始化的过程中,我就遇到了由于包缺少,导致无法初始化成功的问题,后面会进行描述。
在mysql的bin文件下输入初始化命令:
./mysqld --initialize --user=xr_start --basedir=/home/mysql/mysql --datadir=/home/mysql/mysql/data
如下图:
9.启动mysql数据库,查看是否启动成功
启动的命令:./mysqld_safe –user=xr_start &
查看的命令:ps aux|grep mysqld
如下图:
10.修改mysql密码
如果mysql成功启动,则由于初始化的密码过于复杂,建议改为自己比较常用的登录密码
修改密码的命令:./mysqladmin -u root -p password
结果如下图:
11.设置数据库开机自动启动
将数据库的启动脚本复制到资源目录:cp /home/mysql/mysql/support-files/mysql.server /etc/rc.d/init.d/
增加mysqld脚本执行权限:chmod +x /etc/rc.d/init.d/mysqld
将mysqld服务加入到系统服务中:chkconfig –add mysqld
检查mysqld是否已经生效:chkconfig –list mysqld
如下图:
12.修改一下启动脚本
因为本人是将数据库安装在别的位置,并未放在默认位置,所以如果想要使用命令:service mysqld start和service mysqld stop用来启动和关闭数据库,需要修改一下启动脚本。
将之前配置的初始化文件中的basedir和datadir加入。
如下图:
13.配置环境变量
用root用户,进入/etc,然后修改profile文件
在文件最后,修改一下path变量,
变成:
export PATH=${JAVA_PATH}:/home/mysql/mysql/bin:/home/mysql/mysql/lib:$PATH
设置文件生效:# source /etc/profile
到这,数据库算是刚刚弄好,一天就这么过去了。
今天主要遇到了两个大问题:
(1)初始化mysql数据库总是失败
具体原因可能每个人不同,个人原因是缺少了numactl,所以需要安装一下:yum -y install numactl,之后,数据库就启动成功了。
(2)启动数据库失败
每次启动出现不一样的问题
如图1:
如图2:
查阅些资料,发现:
1、启动文件没有修改;
2、由于上面将mysql的所属权限给了新创建的xr_start用户,所以我换成新建的用户去启动就可以了。