安装本地MySQL5.7数据库
安装MySQL5.7,我使用的是yum源安装的方式,这里使用的源是清华的源,即:https://mirrors.tuna.tsinghua.edu.cn/
[mysql-connectors-community]
name=MySQL Connectors Community
baseurl=https://mirrors.tuna.tsinghua.edu.cn/mysql/yum/mysql-connectors-community-el7-$basearch/
enabled=1
gpgcheck=1
gpgkey=https://repo.mysql.com/RPM-GPG-KEY-mysql
[mysql-tools-community]
name=MySQL Tools Community
baseurl=https://mirrors.tuna.tsinghua.edu.cn/mysql/yum/mysql-tools-community-el7-$basearch/
enabled=1
gpgcheck=1
gpgkey=https://repo.mysql.com/RPM-GPG-KEY-mysql
[mysql-5.6-community]
name=MySQL 5.6 Community Server
baseurl=https://mirrors.tuna.tsinghua.edu.cn/mysql/yum/mysql-5.6-community-el7-$basearch/
enabled=0
gpgcheck=1
gpgkey=https://repo.mysql.com/RPM-GPG-KEY-mysql
[mysql-5.7-community]
name=MySQL 5.7 Community Server
baseurl=https://mirrors.tuna.tsinghua.edu.cn/mysql/yum/mysql-5.7-community-el7-$basearch/
enabled=1
gpgcheck=1
gpgkey=https://repo.mysql.com/RPM-GPG-KEY-mysql
[mysql-8.0-community]
name=MySQL 8.0 Community Server
baseurl=https://mirrors.tuna.tsinghua.edu.cn/mysql/yum/mysql-8.0-community-el7-$basearch/
enabled=1
gpgcheck=1
gpgkey=https://repo.mysql.com/RPM-GPG-KEY-mysql
这个源的使用是在/etc/yum.repo.d/这个目录下创建一个mysql.repo文件,把上面的源复制进去保存即可使用,这个源可以根据自己的需要进行选择使用,并不一定要全部都复制上去。
yum clean all #清除之前的缓存
yum repolist #查看所有的源
yum list | grep mysql #看一下有没有合适的mysql版本
yum -y install mysql mysql-server #下载适合的MySQL版本
下载完之后其实就可以使用了,但是这里我们的要求是要指定一个目录mysql_dir
mkdir /data/mysql_dir
然后先启动mysql,再停掉,把/var/lib/mysql/复制到指定目录下,并创建一个软连接,修改一下my.cnf文件
[client]
socket = /var/lib/mysql/mysql.sock
[mysqld]
socket = /data/mysql_dir/mysql/mysql.sock
datadir = /data/mysql_dir/mysql
character-set-server = utf8mb4
default-storage-engine=INNODB
default_tmp_storage_engine = innodb
log_error = /var/log/error_mysql.log
.........省略,配置可以根据自己的需要进行添加
# 修改一下创建目录
然后创建一下软连接
ln -s /data/mysql_dir/mysql/mysql.sock /var/lib/mysql/mysql.sock
#注意这里你指定的目录一定要给mysql用户,不然会报错
安装完数据库之后遇到的问题和解决
首先第一个问题就是密码的问题,这里我的解决方案是在配置文件中添加一句skip-grant-tables然后重新启动数据库就可以跳过密码进入,进去后在进行密码的修改。
mysql -uroot -A #进入数据库
select user,host from mysql.user; #查看当前数据库的用户
update mysql.user set authentication_string=password('密码') where user='root' and host='localhost'; #先修改密码
flush privileges; #回写
退出后再把之前的配置文件加入的语句注释掉或者删除掉
然后重新启动数据库
mysql -uroot -p密码 -A
进入后会发现要你使用alter user来修改密码,我就根据操作再次修改
alter user user() identified by "密码";
这个时候有可能会出现提示你的密码不安全,无法进行修改,这时,我想了想,先修改了一个比较复杂的密码,可以了,但是这并不是我像设置的。
解决方案:使用show variables like 'validate_password%';查看密码策略
然后可以看到validate_password_policy这个显示MEDIUM,这时需要把这个设置为low
set global validate_password_policy=LOW;
flush privileges;
之后再次修改密码就可以了
第二种方式来解决这个问题就是找到初始密码,这个密码在mysql的日志文件中
cat /var/log/mysqld.log | grep password
可以查到初始密码
然后使用这个密码就可以进入数据库了,当然进入之后还是会让你使用
alter user user() identified by "密码";
来进行密码的设置的
设置之后就可以进行正常的操作了