linux环境下mysql的安装之二进制安装

    科技2023-10-04  79

    linux环境下mysql的安装之二进制安装

    源码安装本质上也是将源码编译成二进制代码进行安装的,所以二进制安装相较于源码安装更加便捷,步骤更少;不过也正因为这些便捷,二进制安装时更要注意对一些文件夹的处理。

    安装步骤

    下载安装包 必须要去官网下载安装依赖 yum install cmake ncurses-devel gcc gcc-c++ vim lsof bzip2 openssl-devel -y 解压压缩包 tar xf mysql-5.7.30-linux-glibc2.12-x86_64.tar.gz

    到这里可以查看一下mysql的配置文件,不然很容易踩坑。

    vim mysql-5.7.30-linux-glibc2.12-x86_64/support-files/mysql.server

    其中有下面这样一段代码

    if test -z "$basedir" then basedir=/usr/local/mysql bindir=/usr/local/mysql/bin if test -z "$datadir" then datadir=/usr/local/mysql/data fi sbindir=/usr/local/mysql/bin libexecdir=/usr/local/mysql/bin else bindir="$basedir/bin" if test -z "$datadir" then datadir="$basedir/data" fi sbindir="$basedir/sbin" libexecdir="$basedir/libexec" fi

    这段代码中最重要的是指定了mysql的安装目录和存放数据的目录,下面的安装就可以根据配置文件进行目录指定,避免踩坑。(如果想要完全自定义安装,可以直接更改此文件中相应的路径) 注:后面演示的安装全部按照原路径进行安装

    更改文件夹所在路径,并将文件夹改名为mysql mv mysql-5.7.30-linux-glibc2.12-x86_64 /usr/local/mysql

    移动到mysql.server文件中指定的目录下

    复制mysql.server文件到/etc/init.d目录下,并更名为mysqld cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld 新建存放数据的文件夹并授权 存放数据的文件需要用户自己创建并授予写入的权利,不然将无法存入数据 mkdir /usr/local/mysql/data -p chown mysql:mysql /usr/local/mysql/data chmod 750 /usr/local/mysql/data 初始化 cd /usr/local/mysql/bin ./mysqld --initialize --user=mysql --basedir=/usr/local/mysql/ --datadir=/usr/local/mysql/data

    还是那个老问题,路径必须为mysql.server文件中指定的路径;指定的user必须是存在的用户。 初始化这步成功之后,会生成临时密码,第一次登录的时候需要临时密码。

    添加到PATH变量; echo "PATH=$PATH:/usr/local/mysql/bin" >>/root/.bashrc PATH=$PATH:/usr/local/mysql/bin 关闭防火墙 service firewalld stop systemctl disable firewalld 关闭selinux setenforce 0 sed -i 's/enforcing/disabled/' /etc/selinux/config 编辑/etc/my.cnf文件 > /etc/my.cnf vim /etc/my.cnf

    将下面这段内容写入my.cnf中

    [mysqld_safe] [client] socket=/usr/local/mysql/data/mysql.sock [mysqld] socket=/usr/local/mysql/data/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>

    其中两个socket的mysql.sock文件所在的路径是mysql.server文件中指定的存放数据的文件

    启动mysql service mysqld start

    使用查看进程的方式可以检查mysql是否成功启动

    登录 mysql -uroot -p'临时密码'

    脚本

    #!/bin/bash #新建用户mysql useradd -s /sbin/nologin mysql #解决软件的依赖关系 yum install cmake ncurses-devel gcc gcc-c++ vim lsof bzip2 openssl-devel -y #解压二进制安装包 tar xf mysql-5.7.30-linux-glibc2.12-x86_64.tar.gz #将解压后的文件夹移动剪切到/usr/local下改名为mysql mv mysql-5.7.30-linux-glibc2.12-x86_64 /usr/local/mysql #进入/usr/local/mysql cd /usr/local/mysql #关闭防火墙firewalld service firewalld stop systemctl disable firewalld #关闭selinux #临时关闭selinux #永久关闭selinux setenforce 0 sed -i 's/enforcing/disabled/' /etc/selinux/config #mysql的初始化操作 mkdir /usr/local/mysql/data -p chown mysql:mysql /usr/local/mysql/data chmod 750 /usr/local/mysql/data cd /usr/local/mysql/bin ./mysqld --initialize --user=mysql --basedir=/usr/local/mysql/ --datadir=/usr/local/mysql/data &>passwd.txt #获得临时密码 tem_passwd=$(cat passwd.txt |grep "temporary"|awk '{print $NF}') #修改环境变量,添加我们编译安装的MySQL的可执行命令的路径 echo "PATH=$PATH:/usr/local/mysql/bin" >>/root/.bashrc PATH=$PATH:/usr/local/mysql/bin #复制mysql提供的启动mysqld服务的脚本到/etc/init.d目录下-->复制mysqld的启动脚本 cp ../support-files/mysql.server /etc/init.d/mysqld #生成/etc/my.cnf配置文件 cat >/etc/my.cnf <<EOF [mysqld_safe] [client] socket=/usr/local/mysql/data/mysql.sock [mysqld] socket=/usr/local/mysql/data/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 #启动mysqld服务 service mysqld start #初次修改密码需要使用--connect-expired-password 选项 mysql -uroot -p$tem_passwd --connect-expired-password -e "set password='自己设置的新密码';" #验证密码是否设置成功 mysql -uroot -p'自己设置的新密码' -e 'show databases;' && echo "database is installed success"

    脚本亲测可用,再次登录时切换用户

    Processed: 0.011, SQL: 8