简介:linux系统
一、查看mariadb并卸载
1、使用命令查看mariadb是否存在
命令:rpm -qa | grep mariadb
显示:mariadb-libs-5.5.28-2el7.x86_64
2、使用rpm -e --nodeps mariadb-libs-5.5.28-2.el7.x86_64命令卸载
(注意mariadb相关包版本可能不一样)
二、安装mysql数据库
1、下载安装文件
下载mysql-8.0.28-linux-glibc2.12-x86_64.tar.xz(文末自取,其他8.0版本也可),并将该文件移动到 /usr/local/
2、解压缩包
使用xz-d命令将xxx.tar.xz压缩包解压成xxx.tar,如下:
xz -d mysql-8.0.28-linux-glibc2.12-x86_64.tar.xz
然后,使用tar-vx命令将xxx.tar压缩包解压,如下:
tar -xvf mysql-8.0.28-linux-glibc2.12-x86_64.tar
3、重命名包
两种方式:mv mysql-8.0.28-linux-glibc2.12-x86_64 /usr/local/mysql
另一种:可视化界面下直接在该包右键Rename,输入mysql即可。
4、检查mysql组和用户名是否存在,如无就创建
检查是否存在mysql组:grep mysql /etc/group
创建mysql用户组:groupadd mysql
检查是否存在mysql用户:grep mysql /etc/passwd
创建mysql用户:useradd -g mysql mysql
5、进入mysql目录并创建data目录
切换到mysql目录下,命令如下:
cd /usr/local/mysql
local目录下创建data目录:mkdir data
6、给相关目录赋权
(在local目录下操作:cd /usr/local/,原则上经历上步,不需要再来一边这句)
chmod -R 777 /usr/local/mysql
chmod -R 777 /usr/local/mysql/data/
7、将mysql目录的权限授给mysql用户和mysql用户组
chown -R 777 mysql:mysql /usr/local/mysql
8、新建mysql配置文件my.cnf
(文末my.ini改后缀即可)
同上,local目录下,输入命令:vi /etc/my.cnf
9、给配置文件赋权限:
所有用户可读写,命令:chmod -R 777 /etc/my.cnf
不生效时,用这句用户可读写,其他用户不可读写:chmod 644 /etc/my.cnf
10、安装mysql
切换目录命令:cd /usr/local/mysql/bin/
安装MySQL,两种方式:
第一种随机生成密码,每次生成都不一样,需要保存返回的密码段,后期修改密码要用
初始化数据库:./mysqld --initialize --console
第二种设置密码为空,初始化数据库:./mysqld --initialize --insecure
报错...No such file or directory,此时先检查该链接库文件有没有安装,命令如下:
rpm -qa | grep libaio
运行该命令后发现系统中无法链接库文件,使用安装命令:yum install libaio-devel.x86_64
安装成功,继续运行数据库初始化命令
11、启动mysql
切换目录:cd /usr/local/mysql/support-files/
启动mysql:./mysql.server start
12、配置环境
切换目录:cp mysql.server /etc/init.d/mysqld
service mysqld restart
13、创建软连接
ln -sf /usr/local/mysql/bin/mysql/usr/bin
我这里使用的-sf强制转换,实际上用-s也是可以的
14、登录mysql修改密码,创建远程登陆
cd /usr/local/mysql
mysql -uroot -p
接着输入sql语句
修改密码:ALTER USER 'root'@'localhost' IDENTIFIED BY '密码’;
修改成远程登陆用户:update user set host='%' where user='root';
实际上我在修改远程登陆用户那里开始报错,用户不能授权的原因是mysql 数据库中user 表中的root 的host 的属性值为localhost,此时要检查数据库
cd /usr/local/mysql
use mysql
update user set host='%' where user='root';
此时,再次执行:grant all on *.* to 'root'@'%';接下步
授权:grant all privileges on *.* to 'root'@'%';
刷新权限:flush privileges;
15、防火墙设置
查看防火墙状态:systemctl status firewalld
打开防火墙:systemctl start firewalld.service
查看防火墙开放端口:firewall-cmd --list-ports
开放80端口监听:firewall-cmd --zone=public --add-port=80/tcp --permanent
刷新防火墙:firewall-cmd --reload
三、navicate链接
1、打开navicate,创建mysql连接,连接名输入最开始session建立时的Remote host。
用户名为root,密码为sql语句重置后的密码。
2、连接测试成功,建立连接。
连接测试不成功,错误原因如果是加密方式不同,报错前的编号进行更改。
比如我的弹窗报错编号是1251
先登录mysql,输入命令:mysql -u root -p
输入密码后,输入命令:use mysql;
查看当前加密方式:select user,host from user;
我的root对应的host属性值为‘%’(前面赋了最大权限给root),
把执行的:
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY ‘密码';
改成 :
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY ‘密码';
最后刷新权限:flush privileges;
此时可以成功连接了。
文件包百度网盘
链接: https://pan.baidu.com/s/1yHwC4imE1kpaXkL4V_QBeA?pwd=s38a
提取码: s38a