mysql——在linux环境安装mysql

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的基本内容,如有错误,欢迎指正