linux下安装mysql 5.7.31
下载mysql文件
下载mysql文件5.7.31包,我已经上传到文件中。也可以点击下载 如下图所示:
删除Linux下默认安装的MariaDB
# 查找mariadb安装包名字
rpm -qa | grep -i mariadb
# 卸载mariadb安装包,mariadb-libs-5.5.52-1.x86 是上一条命令查出的结果
rpm -e --nodeps mariadb-libs-5.5.52-1.x86
上传文件并解压
创建要上传的目录,这里我的目录为
cd /opt/myinstall
mkdir mysql
将mysql安装包上传至目录下,然后解压
tar -xvf mysql-5.7.31-1.el7.x86_64.tar
安装
rpm -ivh mysql-community-common-5.7.31-1.el7.x86_64.rpm
rpm -ivh mysql-community-libs-5.7.31-1.el7.x86_64.rpm
rpm -ivh mysql-community-client-5.7.31-1.el7.x86_64.rpm
rpm -ivh mysql-community-server-5.7.31-1.el7.x86_64.rpm
安装报错
如果安装最后一步server的时候,报错,说明缺少依赖包libaio
可以点击下载 然后下载依赖包
然后把下载的包上传到linux后执行
rpm -ivh libaio-0.3.112-1.el8.x86_64.rpm
然后在重新执行就不会报错了
rpm -ivh mysql-community-server-5.7.31-1.el7.x86_64.rpm
至此,mysql数据库就安装完成了
启动mysqld服务
执行以下命令
# 启动服务 命令后有空格会报错
systemctl start mysqld
# 查看服务状态
systemctl status mysqld
其它命令
# 停止服务
systemctl stop mysqld
# 重启服务
systemctl restart mysqld
修改mysql的登录密码
设置跳过登录密码
vi /etc/my.cnf
在最后一行添加代码
# 跳过密码登录
skip-grant-tables
保存后,然后重启服务
systemctl restart mysqld
登录mysql,刚才已经设置了跳过密码登录,所以我们只要输入登录命令,回车两次就可以了
mysql -u root -p
查看root用户的密码命令
修改密码为:123456
如果执行修改密码的sql报错
修改validate_password_policy参数的值, 修改允许的密码长度
mysql> set global validate_password_policy=0;
mysql> set global validate_password_length=1;
然后重启服务
输入quit退出mysql交互界面
此时把刚才配置的跳过密码配置代码去掉或者注释掉就可以了。
然后再次重启mysqld服务
systemctl restart mysqld
然后输入命令
mysql -u root -p
输入刚才设置的密码:123456,出现mysql交互则说明刚才设置成功。
设置编码格式
修改配置文件
vi /etc/my.cnf
# 在[mysqld]下添加
collation_server=utf8_general_ci
character_set_server=utf8
default-storage-engine=INNODB
# 在[client]下添加(如果没有[client],则创建[client])
[client]
default_character-set=utf8
保存,然后重启mysql服务
systemctl restart mysqld
登录mysql
mysql -u root -p 123456
查看mysql编码
show variables like 'character_set_%';
此时可以查看修改mysql编码已经为UTF-8了
开启远程连接
登录mysql
mysql -u root -p 123456
执行以下命令
mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456';
# 立即生效
mysql> FLUSH PRIVILEGES;
刚才命令解释
123456是登录密码
*.* 表示所有数据库下的所有表
'root'@'%' 表示所有主机的root
如果设置报错
出现这个原因是因为密码设置太过于简单,mysql有密码强度校验(密码设置时必须包含大小写字母,特殊符号,数字,并且长度大于8位)
解决办法:必须修改两个全局配置参数(临时更改,如果重新进入,需要重新修改)
mysql> set global validate_password_policy=0;
mysql> set global validate_password_length=1;
然后重新执行命令
修改配置文件
vi /etc/my.cnf
bind-address如果是127.0.0.1,mysql只接受localhost,不接受远程连接。在bind-address后面增加远程访问IP地址或者禁掉这句话就可以让远程机登陆访问了。
如果地址是 0.0.0.0, 服务接受所有IPV4的接口;
如果地址是 ::, t服务接受所有IPV4和 IPv6 的接口;
修改端口
登录mysql
mysql -u root -p 123456
查看端口
show global variables like ‘port’;
可以看出现在的端口是3306
修改配置文件
vi /etc/my.cnf
然后保存退出
重启mysql
systemctl restart mysqld
此时就修改端口完成