1.准备工作
准备一台没有安装过mysql、mariadb的虚拟机,或者创建一台全新的虚拟机。注意:本次安装mysql是在centos7中进行的。
准备好linux环境的mysql安装包,可以去官网中下载。可以在这个页面(MySQL :: Download MySQL Community Server (Archived Versions))下载5.7版本的mysql。
2.使用命令行操作
话不多说,上硬菜,我们直接开始操作
1.将下载好的安装包传入linux系统中。
2.安装需要的工具,并解决软件的依赖关系
yum install cmake ncurses-devel gcc gcc-c++ vim lsof bzip2 openssl-devel ncurses-compat-libs net-tools -y
3.解压mysql的二进制安装包
tar xf mysql-5.7.37-linux-glibc2.12-x86_64.tar.gz
4.移动mysql解压后的文件到/usr/local并改名为mysql
mv mysql-5.7.37-linux-glibc2.12-x86_64 /usr/local/mysql
5.新建组mysql
groupadd mysql
6.新建用户mysql,这个用户的shell是/bin/false,属于组mysql,-r代表这是一个系统用户(system)
useradd -r -g mysql -s /bin/false mysql
7.关闭防火墙服务
service firewalld stop
8.设置防火墙开机不要启动
systemctl disable firewalld
9.临时关闭selinux
setenforce 0
10.永久关闭selinux
sed -i ‘/^SELINUX=/ s/enforcing/disabled/’ /etc/selinux/config
11.新建存放数据的目录,即mysql的仓库,-p表示递归创建目录
mkdir /data/mysql -p
12.修改/data/mysql目录的权限归mysql用户和mysql组所有,这样mysql启动的mysql进程就可以对这个目录进行读写了
chown mysql:mysql /data/mysql/
13.设置这个目录只允许mysql用户读写执行,mysql组进行读写,其他用户没有任何权限
chmod 750 /data/mysql/
14.进入/usr/local/mysql/bin/目录
cd /usr/local/mysql/bin/
15.初始化mysql,这一步骤注意保存生成的密码,即最后一行可以复制保存一下,以免丢失。
类似于:2023-07-06T02:47:58.457334Z 1 [Note] A temporary password is generated for root@localhost: HEJ)g&2pzus?
./mysqld –initialize –user=mysql –basedir=/usr/local/mysql/ –datadir=/data/mysql
16.设置让mysql支持ssl方式登录
./mysql_ssl_rsa_setup –datadir=/data/mysql/
17.修改PATH变量,加入mysql bin的目录。临时修改PATH变量的值
export PATH=/usr/local/mysql/bin/:$PATH
18.永久修改PATH变量的值,重启linux系统也生效
echo ‘PATH=/usr/local/mysql/bin:$PATH’ >>/root/.bashrc
19.复制support-files里的mysql.server文件到/etc/init.d/目录下叫mysqld
cp ../support-files/mysql.server /etc/init.d/mysqld
20.修改/etc/init.d/mysqld脚本文件里的datadir目录的值
sed -i ’70c datadir=/data/mysql’ /etc/init.d/mysqld
21.生成/etc/my.cnf的配置文件,直接全部复制就好
cat >/etc/my.cnf
[mysqld_safe]
[client]
socket=/data/mysql/mysql.sock
[mysqld]
socket=/data/mysql/mysql.sock
port = 3306
open_files_limit = 8192
innodb_buffer_pool_size = 512M
character-set-server=utf8
[mysql]
auto-rehash
prompt=\u@\d \R:\m mysql>
EOF
22.修改内核open file的数量
ulimit -n 1000000
23.设置开机启动的时候也配置生效
echo “ulimit -n 1000000” >>/etc/rc.local
chmod +x /etc/rc.d/rc.local
24.将mysqld添加到linux系统里服务管理名单里
chkconfig –add mysqld
25.设置mysqld服务开机启动
chkconfig mysqld on
26.启动mysqld进程,启动成功就配置好了
service mysqld start
27.使用随机生成的密码登录到mysql里面,我随机生成的已经在上面有了,即HEJ)g&2pzus?
mysql -uroot -p’HEJ)g&2pzus?’
28.修改mysql的密码,在mysql里面写语句记得写分号。密码如果对安全性要求不高的,就设置自己容易记的。我设置成了好好学习天天向上哦耶(hhxxttxsoy)
set password=’hhxxttxsoy’;
29.检验是否配置成功,如果出现了mysql里面的数据库,代表配置成功了
show databases;
3.使用脚本操作
根据上面的命令行操作,我们也可以写出一个脚本,可以实现一键安装的效果。
根据上面的命令行写成脚本,需要修改的步骤有:
1.在15步要记得将输出重定向到指定文件中,以便查找随机生成的密码,即
./mysqld –initialize –user=mysql –basedir=/usr/local/mysql/ –datadir=/data/mysql &>passwd.txt
2.在16步的后面添加一个步骤,即在设置mysql支持ssl方式登录的后面加上这个步骤,以提取生成的密码
tem_passwd=$(cat passwd.txt |grep “temporary”|awk ‘{print $NF}’)
#$NF表示最后一个字段
# abc=$(命令) 优先执行命令,然后将结果赋值给abc
3.将24和25步改成下面这样
/sbin/chkconfig –add mysqld
/sbin/chkconfig mysqld on
4.由于是脚本自动将临时密码修改,所有需要修改合并一下27和28步
mysql -uroot -p$tem_passwd –connect-expired-password -e “set password=’hhxxttxsoy’;”
最后通过对命令的修改和整合,写成一个脚本,并执行,前提是必须要有与脚本中的mysql版本号一致的mysql压缩包。保证压缩包与脚本在同一目录下。
以上就是关于在linux系统下安装mysql的基本内容,如有错误,欢迎指正。