文章目录
一、安装mysql-5.7.30-linux
1、下载mysql-5.7.30-linux
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
启动服务
- service mysql start
- 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