centos采用yum方式安装mysql5.7及常见问题解决


centos6安装mysql5.7社区版-(首先添加mysql官方yum源)

yum install epel*  -y && yum clean all && yum makecache 
rpm -Uvh http://repo.mysql.com/mysql57-community-release-el6.rpm
yum clean all && yum makecache
yum install gcc gcc-c++ openssl-devel mysql mysql-server mysql-devel -y

centos7安装mysql5.7社区版-(首先添加mysql官方yum源)

yum install epel*  -y && yum clean all && yum makecache 
rpm -Uvh http://repo.mysql.com/mysql57-community-release-el7.rpm
yum clean all && yum makecache
yum install gcc gcc-c++ openssl-devel mysql mysql-server mysql-devel -y

1:创建数据库文件存放路径

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

2:修改数据库默认存储路径
vim /etc/my.cnf

[mysqld]
datadir=/data/mysql
socket=/data/mysql/mysql.sock
user=mysql
symbolic-links=0
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
character-set-server=utf8

[mysql]
socket=/data/mysql/mysql.sock
default-character-set=utf8

[client]
socket=/data/mysql/mysql.sock
default-character-set=utf8
#若是不写上这个字段,在本机用命令进入mysql会报错,提示默认路径/var/lib/mysql/mysql.sock找不到

3:初始化数据库
mysql5.7.7以前的版本请使用下面语句进行初始化,初始化后,他会为数据库的root账户,生产一个过期的随机密码,放在,安装mysql5.7这个软件的用户的家目录下一名为.mysql_secret的文件里

mysql_install_db --user=mysql --datadir=/data/mysql

mysql5.7.7以后的版本,请使用mysqld进行初始化,初始化后也会为root创建一个过期的密码,但是需要去my.cnf里面定义的log-error=/var/log/mysqld.log这个日志文件
查看,关键词是password

mysqld --initialize --user=mysql --datadir=/data/mysql

4:特别注意若是centos7系统,还应先关闭selinux,不然mysql服务无法正常启动
setenforce 0
5:启动数据库服务

centos6
service mysqld start

centos7
systemctl start mysqld

6:为mysql数据库做安装加固(需要密码:cat /var/log/mysqld.log |grep pass)
mysql_secure_installation

7:更改初始化时生产的随机root密码,下面操作是重置root密码

mysql -uroot -p
mysql> SET PASSWORD FOR 'root'@'localhost' = PASSWORD('newpass');

问题描述:

1:修改了my.cnf文件里的数据库所在目录,,并且将[mysqld]下的socket也做了相应的调整,但是mysql服务正常启动了,当输入mysql -uroot -p命令后出现ERROR 2002 (HY000): Can’t connect to local MySQL server through socket ‘/var/lib/mysql/mysql.sock’ (2)错误

问题原因:除了mysqld会去默认去寻找/var/lib/mysql/mysql.sock,之外[client],[mysql]也会默认去此路径寻找解决方法:
1:在进入mysql的时候使用-S参数:mysql -uroot -p -S /data/mysql/mysql.sock
2:也可以创建一个软链接:ln -s /data/mysql.sock /var/lib/mysql/mysql.sock
3:在my.cnf文件里分别加入[client],[mysql]这两个关键字段,并将其的socket参数路径,改成与上面一样的,如下

[mysqld]
datadir=/data/mysql
socket=/data/mysql/mysql.sock
user=mysql
symbolic-links=0
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
[mysql]
socket=/data/mysql/mysql.sock
[client]
socket=/data/mysql/mysql.sock

2:在日常管理中经常会出现乱码的情况

问题原因:mysql部分编码方式默认为 latin1
解决方法:在my.cnf文件里的[mysql],[client],[mysqld]加入对应的编码字段,如下

[mysqld]
character-set-server=utf8
[mysql]
default-character-set=utf8
[client]
default-character-set=utf8

3:centos7安装的mysql5.7,无法通过systemctl start mysqld启动

问题原因:原因很多,这里说的一种原因可能是selinux
解决方法:关闭selinux

4:centos7安装mysql5.7以后,数据库root账户是默认是有密码的,这是系统生成的,没有这个密码无法进行操作

问题原因:安装数据库后都会初始化数据库,mysql_install_db这个命令,mysql5.7引入了新的安全机制,
安装MySQL后默认会为root@localhost用户创建一个随机密码
解决方法:在centos7上,去安装mysql5.7这个软件的用户的家目录下查看一个叫.mysql_secret的文件,这里面保存了随机密码

声明:本文为原创,作者为 辣条①号,转载时请保留本声明及附带文章链接:https://boke.wsfnk.com/archives/49.html
微信打赏微信打赏

如果文章对你有帮助,欢迎点击上方按钮打赏作者

最后编辑于:2020/2/19作者: 辣条①号

暂无评论

发表评论

电子邮件地址不会被公开。 必填项已用*标注