【记录】手动安装MySQL5.7

2024-08-20 18:52:36 浏览数 (1)

本文发布于363天前,最后更新于363天前,其中的信息可能有所发展或是发生改变。

1.参考文章

  • Linux安装mysql5.7详细教程-腾讯云开发者社区-腾讯云 (tencent.com)
  • mysql时报错:mysql: error while loading shared libraries: libncurses.so.5: cannot open shared object fil
  • mysql登录报错:ERROR 1045 (28000): Access denied for user ‘root’@’localhost’ (using password: YES)
  • 解决mysql:ERROR 1045 (28000): Access denied for user ‘root‘@‘localhost‘ (using password: NO/YES)

2.下载MySQL5.7版本Linux版

进入MySQL官网:MySQL Download MySQL Community Server

选择5.7.43版本下载:

代码语言:javascript复制
Linux - Generic (glibc 2.12) (x86, 64-bit), Compressed TAR Archive
(mysql-5.7.43-linux-glibc2.12-x86_64.tar.gz)	

3.复制压缩包到linux服务器进行解压

下载完成后,使用SFTP上传至服务器中(任意一文件夹即可,后续将移动到指定位置)。

然后解压

代码语言:javascript复制
tar -zxvf mysql-5.7.43-linux-glibc2.12-x86_64.tar.gz

4.解压好后把MySQL移动到指定位置并重命名

代码语言:javascript复制
mv mysql-5.7.43-linux-glibc2.12-x86_64 /usr/local/mysql

5.创建MySQL用户组和用户并修改权限

代码语言:javascript复制
groupadd mysql
useradd -r -g mysql mysql

6.创建数据目录并赋予权限

代码语言:javascript复制
mkdir -p  /data/mysql
chown mysql:mysql -R /data/mysql

7.配置my.cnf文件

代码语言:javascript复制
vim /etc/my.cnf

修改文件内容

代码语言:javascript复制
[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

8.初始化数据库

进入MySQL的bin目录下执行

代码语言:javascript复制
cd /usr/local/mysql/bin/
代码语言:javascript复制
./mysqld --defaults-file=/etc/my.cnf --basedir=/usr/local/mysql/ --datadir=/data/mysql/ --user=mysql --initialize

在这里执行初始化的时候会报错,可能会缺少libaio.so.5文件,根据以下代码即可修复这个问题

代码语言:javascript复制
apt-get install libncurses5-dev  libncurses5   # 适用于Ubuntu系统

此时你再执行初始化数据库会报错,不要慌,那是因为你刚刚执行这个命令的时候在data目录下已经有日志了,先把这个目录下的文件清空,再重新执行即可成功!

9.查看MySQL密码

代码语言:javascript复制
cat /data/mysql/mysql.err

执行此命令之后在文件的最后位置会有对应的密码,请一定牢记!!!这个文件只可以访问一次。

代码语言:javascript复制
[Note] A temporary password is generated for root@localhost: yourPassword

10.修改启动文件

先将mysql.server放置到/etc/init.d/mysql中

代码语言:javascript复制
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql

查看启动项

代码语言:javascript复制
cat /etc/my.cnf

找到其中的

代码语言:javascript复制
basedir=/usr/local/mysql
datadir=/data/mysql

然后编辑mysql启动文件

代码语言:javascript复制
vim /etc/init.d/mysql

代码语言:javascript复制
basedir=
datadir=

改成

代码语言:javascript复制
basedir=/usr/local/mysql
datadir=/data/mysql

然后退出保存即可。

11.启动MySQL

启动mysql服务

代码语言:javascript复制
service mysql start

查看mysql启动进程

代码语言:javascript复制
ps -ef|grep mysql 

12.修改root密码

代码语言:javascript复制
./mysql -u root -p   #bin目录下执行哦
代码语言:javascript复制
root@RainYun-uq34Ijpz:/usr/local/mysql/bin# ./mysql -u root -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or g.

登陆成功之后执行如下操作:

代码语言:javascript复制
SET PASSWORD = PASSWORD('123456');        // 设置新的密码
ALTER USER 'root'@'localhost' PASSWORD EXPIRE NEVER;    
FLUSH PRIVILEGES;        

此时你的MySQL已经基本配置完成啦~

在这里执行登录MySQL的时候可能会报错,可能会缺少 libaio.so.5 文件,根据以下代码即可修复这个问题:

代码语言:javascript复制
apt-get install libncurses5-dev libncurses5  #适用于Ubuntu系统

如果在执行重置密码的时候出现以下错误

代码语言:javascript复制
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)

你可以修改配置文件

代码语言:javascript复制
vim /etc/my.cnf

在[mysqld]后添加skip-grant-tables(登录时跳过权限检查)

代码语言:javascript复制
skip-grant-tables

然后重启MySQL服务即可。

代码语言:javascript复制
systemctl restart mysql

如果报

代码语言:javascript复制
ERROR 1290 (HY000): The MySQL server is running with the --skip-grant-tables option so it cannot execute this statement

输入

代码语言:javascript复制
flush privileges;

会显示

代码语言:javascript复制
Query OK, 0 rows affected (0.01 sec)

输入

代码语言:javascript复制
set password for 'root'@'localhost'=password('Admin123@qwe');

0 人点赞