一 .下载mysql安装包:
打开官方下载地址:https://dev.mysql.com/downloads/mysql/5.7.html,
二,解压并放到根目录安装:
在linux根目录下创建文件夹,将文件上传到该文件夹下,此文件夹为临时文件夹,后面会将解压的文件目录放入/usr/local目录下
1. 创建一个目录: mkdir mysql
2.解压: tar-zxvf mysql-5.7.30-linux-glibce.12-x86.tar.gz
解压后:
3. 将文件夹移动到/usr/local目录下并重命名为mysql
mv mysql-5.7.30-linux-glibc2.12-x86_64 /usr/local/mysql
三 .安装准备
3.1 创建mysql组及mysql用户,并授权
创建mysql组:
创建mysql用户:
3.2 创建数据存放目录并授权(注意,这里是在根目录下创建/data/mysql目录,不要搞错了,我是因为没在根目录下创建,所有后面初始化时失败了多次,惨痛的教训,希望后来人不要重蹈覆辙)
回到根目录下创建数据存放目录/data/mysql:
查看目录是否创建成功:
3.3 配置my.cnf文件
根目录下执行:vim /etc/my.cnf
打开后将下面配置代码粘贴进去,按:wq后按Enter键保存退出:
[mysqld]
bind-address=0.0.0.0
port=3306
user=mysql
basedir=/usr/local/mysql
datadir=/data/mysql
socket=/tmp/mysql.sock
log-error=/data/mysql/mysql.err
pid-file=/data/mysql/mysql.pid
#character config
character_set_server=utf8mb4
symbolic-links=0
explicit_defaults_for_timestamp=true
如果安装的是新版(这里是mysql-5.7.33),my.cnf会有默认内容,如下,则需要你手动修改datadir、socket、log-error、pid-file几个参数
3.4 初始化数据库
进入mysql的bin目录:cd /usr/local/mysql/bin
执行初始化并查看mysql账户密码:
./mysqld --defaults-file=/etc/my.cnf --basedir=/usr/local/mysql/ --datadir=/data/mysql/ --user=mysql --initialize
cd /
cat /data/mysql/mysql.err
四. 启动mysql
4.1 将mysql.server放置到/etc/init.d/mysql中
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql
4.2 启动mysql,并查看是否启动成功
启动成功表示安装完成!!!!
遇到的问题:
问题1:初始化时提示:--initialize specified but the data directory has files in it. Aborting.
原因分析:是因为根目录下data目录下有文件
解决办法:在根目录下使用rm -rf data,将data文件夹删掉,重新创建一个/data/mysql文件目录即可,命令为:mkdir -p /data/mysql
问题2:初始化时提示:log-error set to '/var/log/mariadb/mariadb.log', however file don't exists. Create writable for user 'mysql'.
原因分析:没有/var/log目录下没有mariadb目录和mariadb.log文件
解决办法:创建文件目录和文件,然后给Mysql用户赋权即可
mkdir /var/log/mariadb
touch /var/log/mariadb/mariadb.log
chown -R mysql:mysql /var/log/mariadb/