1、下载mysql
https://dev.mysql.com/downloads/mysql/5.7.html#downloads
2、上传服务器解压
sudo tar -zxvf mysql-5.7.35-linux-glibc2.12-x86_641.tar.gz
移动/usr/local 路径下并重命名一下
sudo mv mysql-5.7.35-linux-glibc2.12-x86_64 /usr/local/mysql
3、创建mysql用户组和用户并修改权限
备注:mysql启动需要用到mysql用户,用其他的用户不可以。如果普通用户没有权限创建用户或者用户组的话,可以联系运维
groupadd mysql
useradd -r -g mysql mysql
4、创建数据目录并赋予权限
mkdir -p /data/mysql #创建目录
chown mysql:mysql -R /data/mysql #赋予权限
5、配置my.cnf
vim /etc/my.cnf
需要填写的内容:
[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
需要注意的是,basedir是我们的解压包的位置,datadir是数据目录。
6、初始化数据库
# 切换到mysql的bin目录
cd /usr/local/mysql/bin/
# 初始化mysql
./mysqld --defaults-file=/etc/my.cnf --basedir=/usr/local/mysql/ --datadir=/data/mysql/ --user=mysql --initialize
# 查看初始密码
cat /data/mysql/mysql.err
7、启动mysql,并更改root 密码
#先将mysql.server放置到/etc/init.d/mysql中,配置服务自启动
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql
# 启动
service mysql start
此时如果不太幸运的话,可能会遇到报错,启动失败,错误如下。(ps:不错对于学习者来说报错才是最大的幸运,可以学习更多东西)
7.1 报错:
Starting MySQL… ERROR! The server quit without updating PID file (/data/mysql/mysql.pid).
7.2 遇到问题不要慌,我们去看日志:
刚才在my.cnf中我们已经配置了错误日志文件路径,我们就去这个文件中找错误提示
看错误日志:
cat /data/mysql/mysql.err
此时我们发现是3306 被占用了。在确认占用3306占用的服务没有用后,我们将其关闭:
netstat -anp |grep 3306
此时再次启动mysql:
service mysql start
此时启动成功!!!!!
8、修改密码
我们先来解决一个问题:
-bash: mysql: command not found
这是因为Linux默认的/usr/bin下是否有mysql文件,需要从mysql的安装路径中软链接过去
ln -s /usr/local/mysql/bin/mysql /usr/bin/
此时就可以在全局使用mysql命令了,接下来我们开始修改密码:
# 登录mysql,并输入在/data/mysql/mysql.err 中的初始密码
mysql -u root -p
# 设置密码:
SET PASSWORD = PASSWORD('123456');
ALTER USER 'root'@'localhost' PASSWORD EXPIRE NEVER;
FLUSH PRIVILEGES;
到此操作完毕。数据已经安装好了。!