linux中安装mysql,navicat连接mysql以及mysql字符集问题

由于要进行一些数据处理,需要在centos7上安装mysql,navicat连接mysql 我遇到的报错信息以及解决方法
在这里安装的是mysql-5.7
用到的工具
虚拟机centos7
xshell
xftp
mysql-5.7.24-linux-glibc2.12-x86_64.tar.gz
navicat(安装在windows上的用来连接linux中的mysql)

首先将xshell连接虚拟机在/opt/下创建 software,与module

cd /opt
mkdir software module

使用xftp将mysql包上传到/opt/software
在这里插入图片描述
解压到module/目录下改名为mysql

tar -zxvf mysql-5.7.24-linux-glibc2.12-x86_64.tar.gz  -C ../module
mv mysql-5.7.24-linux-glibc2.12-x86_64 mysql

创建用户 组群

useradd -s /sbin/nologin -M  mysql

查询是否安装了mysql和mariadb

rpm -qa | grep mysql
rpm -qa | grep mariadb

卸载mariadb数据库这个数据库是Linux预安装的数据库会对mysql有影响,my.cnf里面配置有冲突两个数据库都是用的这个配置文件,我这里是卸载了的因为用不到这个 mariadb数据库,也可以不卸载在其他路径新建在初始化时–defaults-file修改为新建配置文件的路径就可以了

yum -y remove mari*

创建数据目录修改权限

mkdir   /data/mysql           
chown mysql:mysql -R /data/mysql

配置my.cnf 报错重点
卸载了mariadb数据库就没有了,在/etc目录下新建,配置文件中写入

vi /etc/my.cnf
[client]
default-character-set=utf8
[mysqld]
character-set-server =utf8
socket=/tmp/mysql.sock
basedir=#解压移动后的mysql目录
datadir=/data/mysql #数据目录
socket=/tmp/mysql.sock #套接字目录
log-error=/data/mysql/mysql.err #数据目录下初始化后自动生成
pid-file=/data/mysql/mysql.pid #数据目录下初始化后自动生成 没设置会造成PID错误

配置这个样子的 default-character-set=utf8设置默认字符集为utf8 character_set_server=utf8设置数据库服务的字符集为utf8
没有设置的话默认的字符集为latin1数据库显示中文乱码
在这里插入图片描述
在mysql中查看字符集
show variables like ‘character%’;
这是我设置完配置文件查看的
在这里插入图片描述
可以通过set character_set_database=utf8;来设置字符集
但通过这个命令设置完之后退出再查看的话又变回去了不知道怎么回事,你们可以试试。

后面修改完配置文件需要重启mysql服务第一次修改不用

service mysqld restart #重启mysql命令

初始化mysql在安装的mysql路径(/opt/module/mysql)下面
后面还需初始化需将/data/mysql下的所有文件删除

./bin/mysqld --defaults-file=/etc/my.cnf --basedir=/opt/module/mysql/  --datadir=/data/mysql/ --pid-file=/tmp/mysql.pid --user=mysql --initialize

初始化的时候
/data/mysql中有数据报错

22-01-10T08:13:31.991268Z 0 [ERROR] --initialize specified but the data directory has files in it. Aborting.2022-01-10T08:13:31.991294Z 0 [ERROR] Aborting

原因:/data/mysql中有数据报错
解决办法:删除 rm -rf ./*

初始化完成之后会出现第一次登录mysql的密码
也可以再/data/mysql/mysql.err中查看
在这里插入图片描述
复制启动脚本文件需要修改这个脚本文件配置路径有些不一样它是将mysql安装在/usr/local/mysql路径下的

cp support-files/mysql.server /etc/init.d/mysqld

进入到/etc/init.d/mysqld修改与配置文件对应的路径以及对应的bin目录
这是mysql包自带的启动文件默认是要将mysql安装到/usr/local/mysqld下面由于我安装在自己想要的路径下面的所以需要更改对应的路径

vi /etc/init.d/mysqld

basedir=/opt/module/mysql
bindir=/opt/module/mysql/bin
datadir=/data/mysql
sbindir=/opt/module/mysql/bin
libexecdir=/opt/module/mysql/bin

在这里插入图片描述

在/opt/module/mysql下启动mysql服务
service mysqld start
在这里插入图片描述
成功

这里启动mysql服务的时候报错
Starting MySQL. ERROR! The server quit without updating PID file (/var/lib/mysql/mysql.pid).
原因:有mysqld进程在运行
解决方法:
ps -a | grep mysqld 查看
pkill -9 mysqld

启动mysqld报错ERROR 2002 (HY000): Can’t connect to local MySQL server through socket ‘/var/lib/mysql/mysql.sock’ (2)
我这里报的这个是配置文件有错需要回去看看配置文件

登录mysql了
mysql -uroot -p
输入刚刚获取的密码

忘记或在mysql.err中找不到了就重新初始化一次再去看
ERROR 1045 (28000): Access denied for user ‘mysql’@‘localhost’ (using password: YES)
原因:密码错误
解决办法:删除/data/mysql下的内容重新初始化 rm -rf ./*

修改mysql密码

set password =password('123456');                                 
alter user 'root'@'localhost' password expire never;
flush privileges;    

安装好后在虚拟机上查询不到mysql -V的版本号
报错没有这个命令mysql
在mysql安装目录的bin目录下将其链接到/usr/bin下面就找的到了

ln -s  /usr/local/mysql/bin/mysql  /usr/bin/

navicat连接mysql
在这里插入图片描述
Navicat连接远程Linux的MySQL服务器出现1130错误
1130 host 192.168.5.1 is not allowed to connect to this mysql server

因为是MySQL这个账户不允许远程连接的原因
安装完mysql在里面会有一个叫mysql的数据库
use mysql;打开数据库
select user,host from user; 查看root是否支持远程
在这里插入图片描述

host : 表示连接类型 %:表示所有远程通过 TCP方式的连接

update user set host=’%’ where user =‘root’; 修改host
flush privileges; 刷新权限
在这里插入图片描述
再次连接完成

navicat连不上linux中的mysql数据库报错,错误代码 2003 Can not connect to Mysql server on 10038
防火墙的问题
systemctl status firewalld 查看防火墙状态
systemctl stop firewalld 关闭防火墙

关闭防火墙之后再尝试连接就好了

在上面的都是根据我自己安装的mysql步骤写的有些跟其他的不太一样安装位置可以自己取名创建,把对应的配置文件脚本文件上的路径更改就ok

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐