源码安装本质上也是将源码编译成二进制代码进行安装的,所以二进制安装相较于源码安装更加便捷,步骤更少;不过也正因为这些便捷,二进制安装时更要注意对一些文件夹的处理。
到这里可以查看一下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'临时密码'脚本亲测可用,再次登录时切换用户