一、安装前检查
1.检查本地是否有MySQL,Mariadb,并卸载。
- centos7版本开始系统默认支持Mariadb,这是由于mysql被Oracle收购之后,mysql之父担心之后mysql会变成闭源的软件,就又开发了这个版本,支持mysql的所有功能,还增加了一些mysql没有的功能,只是和mysql相比,有些操作稍微不同。(可以把MariaDB当成是mysql的增强版本)。
语句:
#先查询出所安装的mysql/Mariadb
rpm -qa | grep mysql
#删除对应的mysql/Mariadb
rpm -e --nodeps mysql
2.删除相关目录及文件
find / -name mysql
rm -rf XXX
3、检查mysql用户和用户租是否存在,如果没有,则创建
cat /etc/group | grep mysql
cat /etc/passwd |grep mysql
groupadd mysql
useradd -r -g mysql mysql
4、从官网下载是用于Linux的Mysql安装包,也可以从本地上传到服务器
#官网下载语句(5.7.24版本)想要其他版本可以从官网去搜索
wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.24-linux-glibc2.12-x86_64.tar.gz
二、安装MySQL
1、在执行wget命令的目录下/上传的目录下找到下载的mysql安装包
并制行解压命令
#在当前目录会看到该文件
mysql-5.7.24-linux-glibc2.12-x86_64.tar.gz
#如果找不到就用find / -name mysql查找对应问价,然后mv 移动到想要放置的文件
#然后使用解压命令tar解压当前文件
tar -zxvf mysql-5.7.24-linux-glibc2.12-x86_64.tar.gz
解压完成后,可以看到当前目录下多了一个解压文件,移动该文件到/usr/local/下,并将文件夹名称修改为mysql。
#解压后的文件名为
mysql-5.7.24-linux-glibc2.12-x86_64
#使用mv命令将其移动到/usr/local/目录下
mv mysql-5.7.24-linux-glibc2.12-x86_64 /usr/local/mysql
如果/usr/local/下已经存在mysql,请将已存在mysql文件修改为其他名称,否则后续步骤可能无法正确进行。
2、在/usr/local/mysql目录下创建data目录
mkdir /usr/local/mysql/data
3、更改mysql目录下所有的目录及文件夹所属的用户组和用户,以及权限
chown -R mysql:mysql /usr/local/mysql
chmod -R 755 /usr/local/mysql
#如果报错提示没有该用户,用户组,请重新制行
# groupadd mysql
# useradd -r -g mysql mysql
4、编译安装并初始化mysql,务必记住初始化输出日志末尾的密码(数据库管理员临时密码,需要修改)
cd /usr/local/mysql/bin
./mysqld --initialize --user=mysql --datadir=/usr/local/mysql/data --basedir=/usr/local/mysql
找到刚刚执行完毕后弹出的日志,后面则是初始化的管理员密码,要记住它,后面会用到,我的是 so=itqPGP5*m(:后面的所有字符,不要漏)
三、补充
5、编辑配置文件my.cnf,添加配置如下(如果数据库正在运行,修改完成后需要重启mysql才能生效)
#进入文件
vim /etc/my.cnf
#修改为
[mysqld]
datadir=/usr/local/mysql/data #data目录
port = 3306 #默认3306,不建议修改
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES #是一组mysql支持的基本语法及校验规则,受字数限制,建议百度sql_mode
symbolic-links=0 #是否支持符号链接,即数据库或表可以存储在my.cnf中指定datadir之外的分区或目录,为0不开启
max_connections=400
innodb_file_per_table=1 #是否将每个表的数据单独存储,1表示单独存储;0表示关闭独立表空间
lower_case_table_names=1 #是否区分大小写,1表示存储时表名为小写,操作时不区分大小写;0表示区分大小写;不能动态设置,修改后,必须重启才能生效
character_set_server=utf8 #设置数据库默认字符集,如果不设置默认为latin1
max_connections=1500
#指定MySQL允许的最大连接进程数。如果在访问数据库时经常出现"Too Many Connections"的错误提 示,则需要增大该参数值。
max_connect_errors=10000
#如果某个用户发起的连接 error 超过该数值,则该用户的下次连接将被阻塞,直到管理员执行 flush hosts ; 命令或者服务重启, 防止黑客 , 非法的密码以及其他在链接时的错误会增加此值
connect-timeout=10
#连接超时之前的最大秒数,在 Linux 平台上,该超时也用作等待服务器首次回应的时间
wait-timeout=28800
#等待关闭连接的时间
interactive_timeout=28800
#关闭连接之前,允许 interactive_timeout(取代了wait_timeout)秒的不活动时间。客户端的会话 wait_timeout 变量被设为会话interactive_timeout 变量的值。如果前端程序采用短连接,建议缩短这2个值, 如果前端程序采用长连接,可直接注释掉这两个选项,默认配置(8小时)
#设置client连接mysql时的字符集,防止乱码
#init_connect=‘SET NAMES utf8mb4‘
6、启动mysql服务器
/usr/local/mysql/support-files/mysql.server start
当结果如下所示时,则启动成功
7、添加软连接,并重启mysql服务
ln -s /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql
ln -s /usr/local/mysql/bin/mysql /usr/bin/mysql
service mysql restart
8、登录mysql,修改密码(密码为刚刚保存的临时密码)
mysql -u root -p
#登陆完成后修改密码用自己的密码替换掉括号里的XXX
set password for root@localhost = password('XXX');
9、开放远程连接
mysql>use mysql;
msyql>update user set user.Host='%' where user.User='root';
mysql>flush privileges;
#执行完后,通过本地数据库客户端就可以连上数据库
10、设置开机自动启动
#1、将服务文件拷贝到init.d下,并重命名为mysql
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
#2、赋予可执行权限
chmod +x /etc/init.d/mysqld
#3、添加服务
chkconfig --add mysqld
#4、显示服务列表
chkconfig --list
结语
以上就是mysql的安装过程,后续会更新基于docker安装mysql