linux上安装MySQL步骤及问题解决

一、安装mysql-5.7.30-linux

1、下载mysql-5.7.30-linux

MySQL官网下载

2、利用 xftp 传输工具

安装 xftp 传输工具将安装包传入到linux系统下的opt文件夹,

这里不会传输的伙伴,选择文件双击就行,或者拖拽。

在这里插入图片描述

3、解压mysql

在opt目录下解压

tar -zxvf 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

4、安装mysql

进入 /usr/local/目录下,创建用户组和用户权限

groupadd mysql
useradd -r -g mysql mysql

创建数据目录并赋予权限

mkdir -p /data/mysql
chown mysql:mysql -R /data/mysql

配置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

5、初始化数据库

进入mysql 的bin目录

cd /usr/local/mysql/bin/

初始化

./mysqld --defaults-file=/etc/my.cnf --basedir=/usr/local/mysql/ --datadir=/data/mysql/ --user=mysql --initialize

查看密码

cat /data/mysql/mysql.err

6、启动mysql,并更改root密码

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

cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql

启动服务

  1. service mysql start
  2. ps -ef|grep mysql

7、修改密码

首先登录mysql,前面的那个是随机生成的。

./mysql -u root -p #bin目录下

在这里插入图片描述

执行以下操作

SET PASSWORD = PASSWORD(‘123456’);
ALTER USER ‘root’@‘localhost’ PASSWORD EXPIRE NEVER;
FLUSH PRIVILEGES;

如果现在用SQLyog远程连接,可能连接不上

先登录数据库,在执行以下操作

use mysql #访问mysql库
update user set host = ‘%’ where user = ‘root’; #使root能再任何host访问
FLUSH PRIVILEGES; #刷新

此时就可以进行远程连接了
在这里插入图片描述

如果不希望每次都到bin目录下使用mysql命令则执行以下命令

ln -s /usr/local/mysql/bin/mysql /usr/bin

注意:按照以上顺去安装,基本不会有什么问题,因为我试了几遍,如果中途出去报错,可以参考一下错误去解决。

二、在安装过程中可能出现的错误

1、设置密码问题

由于mysql5.7之后,mysql数据库中的mysql库中的user表没有了password字段, password字段改成了authentication_string ,安装一下设置就可以,然后在重新登录即可。

 update user set password=password("*******") where user="*******";  #修改密码报错
update mysql.user set authentication_string=password('*******') where user='*******';  #修改密码成功
flush privileges;  #立即生效

2、权限不足

Access denied for user ‘root’@‘localhost’ (using password: YES)

出现一下报错,可以在my.ini配置文件中添加一行,登录跳过密码验证。

先登录之后,然后在重新设置密码。

skip-grant-tables #在my.ini,[mysqld]下添加一行,使其登录时跳过权限检查

重新设置密码,删除my.ini中的跳过密码验证。

然后重启服务

SET PASSWORD = PASSWORD(‘123456’);
ALTER USER ‘root’@‘localhost’ PASSWORD EXPIRE NEVER;
FLUSH PRIVILEGES;

service mysql restart

3、远程连接不成功

1、网络原因。

2、防火墙设置问题

由于服务器没有对外开放mysql的默认端口3306导致

firewall-cmd --permanent --zone=public --add-port=3306/tcp

firewall-cmd --reload

猜你喜欢

转载自blog.csdn.net/qq_40749830/article/details/106945816