yum安装mysql5.7无法正常初始化_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的文件,这里面保存了随机密码

6b6eb2cd316d672d9964f4feee0fe81b.png微信打赏

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值