在centos7.9上安装 ,启动mysq报错,后面没去处理,目前更新了Centos安装mysql5.7的文章,后续都使用mysql5.7了
启动mysq报错如下:
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (
使用MobaXterm新建session连接到linux
1.查看是否安装了mariadb和mysql,安装了需要先删除
mariadb是mysql的一个分支,但要安装mysql需要删除它
执行rpm -qa|grep mariadb,查看mariadb情况
查找到有就删除
执行yum remove mariadb-libs-5.5.60-1.el7_5.x86_64
再次查看
执行rpm -qa|grep mariadb
已经删除成功
查看是否已经有mysql
yum list installed | grep mysql
有则执行yum -y remove mysql-libs.x86_64 删除
下载mysql rpm安装包然后上传到linux服务器
https://cdn.mysql.com//Downloads/MySQL-5.6/MySQL-5.6.47-1.el7.x86_64.rpm-bundle.tar
网络允许可以直接linux下载 执行
wget https://cdn.mysql.com//Downloads/MySQL-5.6/MySQL-5.6.47-1.el7.x86_64.rpm-bundle.tar
增加mysql用户组
检查mysql用户及组是否存在,
cat /etc/group |grep mysql
如果没有创建组
执行groupadd mysql
创建用户并把该用户加入到组mysql,这里的 -r是指该用户是内部用户,不允许外部登录
useradd -r -g mysql mysql
给用户mysql设置密码
执行passwd mysql
然后设置密码,需要设置2遍比对
安装mysql,把压缩包移动到mysql安装目录
mv MySQL-5.6.47-1.el7.x86_64.rpm-bundle.tar /data/mysql
cd到 /data/mysql 解压
执行tar -xvf MySQL-5.6.47-1.el7.x86_64.rpm-bundle.tar
安装mysql
依次执行
rpm -ivh MySQL-client-5.6.47-1.el7.x86_64.rpm
rpm -ivh MySQL-devel-5.6.47-1.el7.x86_64.rpm
rpm -ivh MySQL-server-5.6.47-1.el7.x86_64.rpm
查看mysql状态
执行service mysql status ,显示服务未开启
登录
执行mysql -u root -p
要求输入密码,直接回车
切换数据库
执行use mysql
查询用户
执行select Host,User,Password from user;
修改密码
UPDATE user SET password=password("root123") WHERE user='root';
退出
quit
重启mysql服务
执行service mysql restart
登录mysql root是mysql用户名 root123是密码
执行mysql -u root -proot123
提示第一次登录必须修改密码
执行set password = password('root789');
设置任何主机可以使用mysql客户端以root用户访问mysql
执行grant all privileges on *.* to 'root'@'%' identified by 'root' with grant option;
退出,重启mysql
执行quit
执行service mysql restart
查看端口,dataDir目录
MySQL在安装完成之后,其源数据默认存放在 /var/lib/mysql/ ,我们一般会把路径修改到空间比较大的分区以存储数据,如果需要修改dataDir目录
执行show global variables like 'port'; 查看端口
执行show variables like 'datadir';查看dataDir目录
修改dataDir目录 停止MySQL服务器,
执行service mysql stop
将以前的数据文件复制到新的数据目录下,
执行cp -rf /var/lib/mysql /data/mysql/datadir
修改my.cnf配置文件
执行mysql --help|grep my.cnf 查看mysql加载配置文件的顺序
Linux下用rpm包安装的MySQL是不会安装/etc/my.cnf文件的,
我们从/usr/share/mysql目录下的.cnf文件到/etc目录,并改名为my.cnf即可。这样mysql会优先加载etc的配置文件
解决方法,只需要复制一个/usr/share/mysql目录下的.cnf文件到/etc目录,并改名为my.cnf即可。
执行cp /usr/share/mysql/my-default.cnf /etc/
执行mv /etc/my-default.cnf /etc/my.cnf
使用MobaXterm打开my.cnf
添加参数datadir
datadir = /data/mysql/datadir/mysql
重启mysql,如果出现如下错误,说明新设置的目录datadir操作权限不足,创建不了pid文件
执行以下指令后,重启mysql
chown -R mysql:mysql /data/mysql/datadir/mysql
chmod -R 755 /data/mysql/datadir/mysql
修改mysql端口号先关闭mysql,打开my.con配置文件,配置port即可,配置完重启mysql,登录mysql查看是否修改成功
mysql table大小写敏感修改
linux下mysql安装完后是默认:区分表名的大小写,不区分列名的大小写;
lower_case_table_names参数详解:
lower_case_table_names = 0
其中 0:区分大小写,1:不区分大小写
MySQL在Linux下数据库名、表名、列名、别名大小写规则是这样的:
1、数据库名与表名是严格区分大小写的;
2、表的别名是严格区分大小写的;
3、列名与列的别名在所有的情况下均是忽略大小写的;
4、变量名也是严格区分大小写的;
MySQL在Windows下都不区分大小写。
show global variables like '%lower_case%';
my.cnf添加
lower_case_table_names=1
查询是否设置成功
注意这里修改的是表名大小写不敏感,字段存储的内容 如证件号码字段有录入大写的X,有录入小写的x,我们希望查询时不敏感, 如select IDCRAD form XXX where IDCARD =:idCard 不区分大小写是创建库名的时候collation 的ci设置的,ci即case insensitive,不区分大小写
处理mysql写入数据乱码
show variables like 'character%';
修改
my.cof增加 character-set-server=utf8
重启mysql mysql客户端再次执行 show variables like 'character%';
mysql集合重要目录
/var/lib/mysql 数据库文件
/usr/share/mysql 命令及配置文件
/usr/bin mysqladmin、mysqldump等命令
=============================================