下载地址:https://downloads.mysql.com/archives/community/
基础环境配置
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
整个过程安装完成
下面是安装过程中遇到的几个问题及解决方案:
这个问题是因为/etc/my.cnf中的文件路径没有设置正确,改为需要的路径即可。如果在其他目录存放这些文件,就必须要手动创建对应的目录然后设置访问权限
这个问题是在安装数据库的时候报错,提示无法安装并且也没有正确显示默认密码。原因是:第一次我使用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