文章目录
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的文件,这里面保存了随机密码
如果文章对你有帮助,欢迎点击上方按钮打赏作者
暂无评论