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 <<EOF
[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的基本内容,**如有错误,欢迎指正**。
版权归原作者 PIZZA1 所有, 如有侵权,请联系我们删除。