Linux升级mysql到5.7
手动操作
1、先查看主机是否已安装mysql(linux默认已安装mysql)
查看命令: yum list mysql*
rpm -qa mysql*
2、删除已安装的mysql
删除命令: yum remove mysql*
rpm -e mysql*
3、创建文件夹/usr/local/mysql,并进入
mkdir /usr/local/mysql
cd /usr/local/mysql
4、下载官网的mysql的yum源
使用wget ,在linux上下载(没有wget的,使用 yum -y install wget安装wget)
下载命令: wget https://repo.mysql.com//mysql80-community-release-el6-1.noarch.rpm
5、使用下载的yum源升级yum包
命令:rpm -Uvh mysql80-community-release-el6-1.noarch.rpm
6、 查看可以使用的mysql版本
使用命令: yum repolist all | grep mysql
7、将自己需要的版本改成enabled (通过修改 /etc/yum.repos.d/mysql-community.repo 来实现)
vi /etc/yum.repos.d/mysql-community.repo
找到需要的版本号,将 enabled=0 改成 enabled=1 ,将其他版本的 enabled=1 改成 enabled=0
这里只修改版本中的enabled,否则安装会出错 (只把8.0的改成enabled=0 ,5.7的改成enabled=1)
wq!
保存退出,再次执行yum repolist enabled | grep mysql可以看到修改的结果
8、安装mysql-community-server
命令: yum -y install mysql-community-server
(遇到报错如下:)
解决办法:配置yum源,更新yum缓存
1)下载repo文件 wget http://mirrors.aliyun.com/repo/Centos-7.repo 2)备份并替换系统的repo文件 cp Centos-7.repo /etc/yum.repos.d/ cd /etc/yum.repos.d/ mv CentOS-Base.repo CentOS-Base.repo.bak mv Centos-7.repo CentOS-Base.repo (区分大小写) 3)执行yum源更新命令 yum clean all yum makecache yum update 配置完毕。
重新执行安装命令: yum -y install mysql-community-server
执行过程未报错,安装成功
9、 mysql命令
启动:service mysqld start
查看状态: service mysqld status
关闭: service mysqld stop
进入mysql
musql -u root -p
刚安装的mysql,密码默认不为空,无法登陆
查看默认密码:
#grep 'temporary password' /var/log/mysqld.log
我的默认密码是“GhJU4C:-cuuN”
用默认密码登录
修改默认密码
提示“Your password does not satisfy the current policy requirements”,密码强度不符合要求
我们可以降低它的密码验证强度从而可以设置任意密码
登录MySQL后
执行以下命令修改mysql全局参数配置
set global validate_password_policy=0; 设置密码强度检查等级
set global validate_password_length=3; 设置密码最低强度
set global validate_password_mixed_case_count=0;
set global validate_password_number_count=3;
执行成功了然后修改密码没有问题了
SET PASSWORD = PASSWORD('abc123');
不过,如果是为了安全起见,可以设置符合安全规则的密码,这样更好。
设置允许root账户进行远程连接
mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123@asdf' WITH GRANT OPTION; mysql> flush privileges;
第一句中”%”表示任何主机都可以远程登录到该服务器*问。如果要限制只有某台机器可以访问,将其换成相应的IP即可,如:
GRANT ALL PRIVILEGES ON . TO root@”172.168.193.25” IDENTIFIED BY “123@asdf”;
123@asdf是登录密码。
第二句表示从mysql数据库的grant表中重新加载权限数据。因为MySQL把权限都放在了cache中,所以在做完更改后需要重新加载。
修改字符集编码 UTF-8
show variables like 'char%';
检测是否都是utf-8(filesystem除外),如果不是就得改,例如这个character_set_server
一般是拉丁编码
修改编码
//停数据库 systemctl stop mysqld //进入 my.cnf 文件,一般是在etc路径下 vim /etc/my.cnf //加入要修改的字符集 修改完:wq退出 在[mysqld]下追加: character-set-server=utf8 //重启数据库 service mysqld start
启动:service mysqld start
查看状态: service mysqld status
关闭: service mysqld stop
1.首先明确启动mysql的方式有:
一、启动方式
1、使用 service 启动:service mysqld start
2、使用 mysqld 脚本启动:/etc/inint.d/mysqld start (不建议此方式,这是直接启动mysqld进程,不管其之前是否被启动)
3、使用 mysqld_safe 启动:去对应mysql安装目的bin下,执行命令./mysqld_safe --user=mysql &
2.几个脚本的区别:
ysql.server,mysqld_safe和mysqld都是可以用来启动mysql服务的,但他们之间是有些区别的
Note:Mysql.server指的是 /etc/init.d/mysql
这三个命令中,其中mysql.server和mysqld_safe 是shell 脚本写的
直接运行mysqld程序来启动MySQL服务的方法很少见,mysqld_safe脚本会在启动MySQL服务器后继续监控其运行情况,并在其死机时重新启动它。用mysqld_safe脚本来启动MySQL服务器的做法在BSD风格的unix系统上很常见,非BSD风格的UNIX系统中的mysql.server脚本其实也是调用mysqld_safe脚本去启动MySQL服务器的
mysqld_safe是个脚本,它会检测当前mysqld进程是否存在等等,所以叫safe嘛~
service mysql start是直接调用mysqld进程启动~
推荐阅读
-
Mysql升级到5.7后遇到的group by查询问题解决
-
Win下Mysql5.6升级到5.7的方法
-
将mysql从5.5.25升级到8.0.12
-
linux定时备份mysql并同步到其它服务器
-
Linux系统下 MySQL 安装 指南(5.7和8.0 版本)
-
centos7利用yum安装lnmp的教程(linux+nginx+php7.1+mysql5.7)
-
Linux中 CentOS 6.5 手动升级gcc到gcc-6.1.0
-
linux系统下将php和mysql命令加入到环境变量中的方法
-
linux系统ubuntu18.04安装mysql 5.7
-
Linux下mysql 5.7 部署及远程访问配置