centos7 MySQL5.7.30安装步骤及问题处理

下载地址:https://downloads.mysql.com/archives/community/

centos7 MySQL5.7.30安装步骤及问题处理_第1张图片

centos7 MySQL5.7.30安装步骤及问题处理_第2张图片

 

基础环境配置
1,配置yum源和epel源
2,安装基础组件,创建mysql用户
yum -y install perl perl-devel autoconf libaio
groupadd mysql
useradd -g mysql -d /home/mysql mysql

3,安装MySQL包mysql-5.7.30-el7-x86_64.tar.gz
tar -xf /root/mysql-5.7.30-el7-x86_64.tar.gz -C /usr/local
mv /usr/local/mysql-5.7.30-el7-x86_64 /usr/local/mysql
mkdir /usr/local/mysql/data
chown -R mysql.mysql /usr/local/mysql

ln -s /usr/local/mysql/mysql.sock /tmp/mysql.sock
chown -R mysql.mysql /tmp/mysql.sock
ln -s /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql
chown -R mysql.mysql /etc/init.d/mysql
ln -s /usr/local/mysql/bin/mysql /usr/bin/mysql
chown -R mysql.mysql /usr/bin/mysql
4,修改/etc/my.cnf

[mysqld]
port=3306
socket=/usr/local/mysql/mysql.sock
#skip-grant-tables
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data

[mysqld_safe]
pid-file=/usr/local/mysql/mysql.pid
log-error=/usr/local/mysql/error.log

!includedir /etc/my.cnf.d

 5,启动
su - mysql
cd /usr/local/mysql
bin/mysqld --initialize --user=mysql --datadir=/usr/local/mysql/data --basedir=/usr/local/mysql 

上图中的密码是正常安装情况下才会显示的密码。如果安装错误是没有密码显示的。
service mysql start
mysql -u root 

无密码登陆成功,如果需要密码,上图就是安装之后的默认密码。
 
6,重置MySQL密码
 set password for root@localhost = password('yourpass');

此时报错了:

意思就是我们在配置文件中,设置了skip-grant-tables跳过密码登录,所以这里不能修改密码。那么我们要在配置文件中注释掉

#skip-grant-tables

注释掉这句之后,就必须要找到MySQL登录时的初始密码。这里我们打开/usr/local/mysql/error.log,找到下面这个位置:

这个就是初始密码,复制之后,重启数据库,使用密码登录

 service mysql restart

mysql -u root -p

输入密码:?VMYqSi-+7oa

然后继续设置密码:

mysql> set password for root@localhost = password('123456');
Query OK, 0 rows affected, 1 warning (0.00 sec)

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| sys                |
+--------------------+
4 rows in set (0.00 sec)

mysql> alter user 'root'@'localhost' identified by '123456';
Query OK, 0 rows affected (0.00 sec)

mysql> use mysql;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed
mysql> update user set user.Host='%' where user.User='root';
Query OK, 1 row affected (0.00 sec)
Rows matched: 1  Changed: 1  Warnings: 0

mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)

7,设置MySQL服务自启

[root@localhost mysql]# cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
[root@localhost mysql]# chmod +x /etc/init.d/mysqld
[root@localhost mysql]# chkconfig --add mysqld
[root@localhost mysql]# chkconfig --list

整个过程安装完成

下面是安装过程中遇到的几个问题及解决方案:

1,

这个问题是因为/etc/my.cnf中的文件路径没有设置正确,改为需要的路径即可。如果在其他目录存放这些文件,就必须要手动创建对应的目录然后设置访问权限

2,

这个问题是在安装数据库的时候报错,提示无法安装并且也没有正确显示默认密码。原因是:第一次我使用root用户来启动数据库发现无法成功,但data目录下已经写入了相关文件,将这些文件全部删除,切换到mysql用户,再次启动,ok。

但是启动之后,没有对应的日志显示,依然无法看到初始密码,这时候就要到error.log文件中搜password字眼。正常启动的情况下,是可以看到初始密码日志的。

3,

这个问题是说无法找到/tmp/mysql.sock这个文件,这个文件那我们在日志中自定义到了/usr/local/mysql目录下,所以要做一个连接,

ln -s /usr/local/mysql/mysql.sock /tmp/mysql.sock  

连接做完之后,要设置/tmp/mysql.sock 这个文件的访问权限

chown -R mysql.mysql /tmp/mysql.sock

 

你可能感兴趣的:(mysql,数据库,centos,运维)