返回家庭收支系统V4迁移到linux目录
操作视频
卸载Mariadb
听说centos7.x上预安装有个Mariadb,据说这是mysql的备胎,用来预防mysql被收费大家没得用。不过我们这里用的是mysql8的社区版,免费的!Mariadb没必要要了,卸了吧!
- 查看已安装的 Mariadb 数据库版本
先看下是不是真的有Mariadb:
rpm -qa | grep -i mariadb
2. 卸载Mariadb
rpm -qa | grep mariadb | xargs rpm -e --nodeps
执行了上面的命令后,再看下Mariadb还在不在,发现已经没有了。
rpm -qa | grep -i mariadb
安装mysql8
- 创建mysql目录
创建mysql目录,用于放mysql8的yum源文件,并进入该目录。
mkdir mysql
cd mysql/
2. 下载mysql的yum源文件
大家可以到官网去找对应版本的yum源文件下载地址:https://dev.mysql.com/downloads/repo/yum/
wget https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm
下载后可以执行命令ls看看是否真的下下来了
ls
3. 安装mysql源
yum localinstall mysql80-community-release-el7-3.noarch.rpm
安装完成之后,会在 /etc/yum.repos.d/ 目录下新增 mysql-community.repo 、mysql-community-source.repo 两个仓库源文件
用以下命令可以查看可用的mysql安装文件
yum repolist enabled | grep "mysql.*-community.*"
4. 安装mysql
yum install mysql-community-server
查看安装的mysql版本
mysql -V
5. 设置不区分大小写
因为之前在windows上安装的mysql是不区分大小写的,这里也设置为不区分大小写吧。
用xftp打开文件/etc/my.cnf
在最后新加一行加上lower_case_table_names=1
以上操作后可能会导致mysql不能启动,可以删除/var/lib/mysql下所有文件再启动。
注意:这里是新建的数据库还没有任何数据,所以肆无忌惮得删删删,如果已有数据请谨慎操作。
rm -rf /var/lib/mysql //会删除数据库数据,谨慎操作!
使用mysql
- 启动和停止mysql服务
启动
systemctl start mysqld
设置开机自启动
systemctl enable mysqld.service
停止
systemctl stop mysqld.service
查看启动状态
systemctl status mysqld
- 登录mysql
mysql安装完后,会在/var/log/mysqld.log文件中给root生成了一个默认密码。我们可以用xftp去这个文件中找密码,也可以用下面的命令查看密码:
grep 'temporary password' /var/log/mysqld.log
登录root用户,密码填上面找到的密码
mysql -u root -p
退出登录
exit
- 修改密码
ALTER USER 'root'@'localhost' IDENTIFIED BY 'Root1234!@#$';
- 远程访问
选择mysql数据库
use mysql;
mysql默认是只能本地访问
select host, user from user;
为了方便我们在windows上用Navicat操作,给root开远程访问。
update user set host='%' where user ='root';
刷新下权限,让设置起效。
flush privileges;
- 阿里云设置外网访问
在Navicat上访问mysql出现无法连接到xxx.xxx.xxx.xxx(IP)
这是在阿里云拒绝访问了,需要在安全组设置加上3306端口允许外网访问
- 修改mysql加密规则
上一步设置好后,再用Navicat连接又出现了这个:
出现这个原因是mysql8之前的版本中加密规则是mysql_native_password。而在mysql8之后,加密规则是caching_sha2_password。
解决问题方法有两种:一种是升级navicat驱动,一种是把mysql用户登录密码加密规则还原成mysql_native_password.。
我的navicat不敢乱升级,原因不想说。于是使用第二种方法。
查看root用户的加密规则
select user,host,plugin,authentication_string from user;
修改root用户的加密规则
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'Root1234!@#$';
刷新权限
FLUSH PRIVILEGES;
这时候就可以在navicat上连接上这个mysql了。