centos 7 安装 mysql-5.7.23-linux-glibc2.12-x86_64.tar.gz 详细步骤

1.卸载Linux系统上自带的mysql插件(old版本)
 查找mysql相关安装:

rpm -qa|grep -i mysql

可能会出现以下的一个或多个,没有更好,说明你的系统很干净,但是以防万一,不管怎样下面的操作还是检查一变

perl-DBD-MySQL-4.013-3.el6.x86_64

mysql-libs-5.1.71-1.el6.x86_64

qt-mysql-4.6.2-26.el6_4.x86_64

mysql-5.1.71-1.el6.x86_64

mysql-server-5.1.71-1.el6.x86_64

mysql-community-common-5.7.23-1.el7.x86_64

如果出现了上面的一个或多个,也不用担心,使用卸载命令,有几个干掉几个!

卸载命令:rpm –ev {包名},如:

rpm -ev mysql-community-common-5.7.23-1.el7.x86_64

查找老版本mysql相关的安装目录命令:

find / -name mysql

若查找到相关目录使用命令:rm –rf {目录名}

最后使用命令:rpm -qa|grep -i mysql,重新检查一遍系统中是否安装mysql。

2.安装包处理
新建software目录,切换到software目录,下载到该目录:

mkdir /root/software

cd/root/software

下载:(600M左右,下载需要点时间)

                                                                                   (mysql-5.7.23-linux-glibc2.12-x86_64.tar.gz)
wget https://cdn.mysql.com//Downloads/MySQL-5.7/mysql-5.7.23-linux-glibc2.12-x86_64.tar.gz

注:问题?

-bash: wget: command not found

然后在执行就可以了,或者可以去官网下载。

官网下载

地址:

https://dev.mysql.com/downloads/mysql/

 

下载完 

解压到当前目录:

tar -xzvf mysql-5.7.23-linux-glibc2.12-x86_64.tar.gz

mysql主目录处理
在software目录下移动文件到/usr/local/mysql:

mv mysql-5.7.23-linux-glibc2.12-x86_64/usr/local/mysql

cd/usr/local/mysql

mkdir data

 

主目录权限处理
查看组和用户情况

cat /etc/group | grep mysql
cat /etc/passwd |grep mysql

 

若存在,则删除原mysql用户:userdel -r mysql,会删除其对应的组和用户。

在查看就会发现没有,说明你已经删掉了。

创建mysql组和mysql用户

groupadd mysql
useradd -r -g mysql mysql
chown -R mysql:mysql /usr/local/mysql

创建配置文件及相关目录
修改配置文件:/etc/my.cnf,配置不对的话,后面初始化不全,会拿不到默认密码。

vim /etc/my.cnf

修改内容:

basedir=/usr/local/mysql
datadir=/usr/local/mysql/data
port = 3306
socket=/tmp/mysql.sock
pid-file=/tmp/mysqld/mysqld.pid
character-set-server = utf8
log-error=/var/log/mysqld.log

:wq! 保存退出。

创建文件/tmp/mysql.sock:设置用户组及用户,授权

cd /tmp

touch mysql.sock

chown mysql:mysql mysql.sock

chmod 755 mysql.sock

创建文件/tmp/mysqld/mysqld.pid:

mkdir mysqld

cd mysqld

touch mysqld.pid

cd ..

chown -R mysql:mysql mysqld

cd mysqld

chmod 755 mysqld.pid

创建文件/var/log/mysqld.log:

 

touch /var/log/mysqld.log

chown -R mysql:mysql /var/log

cd log

chmod 755 mysqld.log

配置文件其他参数,仅供参考:https://blog.csdn.net/u011823494/article/details/74548642

安装和初始化数据库
进入bin目录:

cd /usr/local/mysql/bin/

初始化数据库:

./mysqld –initialize –user=mysql –basedir=/usr/local/mysql–datadir=/usr/local/mysql/data

注:

这时会出现错误

./mysqld: error while loading shared libraries: libaio.so.1: cannot open shared object file: No such file or directory

解决方案:

 yum install -y libaio

在执行./mysqld –initialize –user=mysql –basedir=/usr/local/mysql–datadir=/usr/local/mysql/data

安全启动:

./mysqld_safe –user=mysql &

是否启动成功,可以通过查看mysql进程,ps -ef | grep mysql

默认密码在mysqld.log日志里, 找到后保存到安全的地方:

cat /var/log/mysqld.log

其中root@localhost: 后面的就是默认密码,后面登录用.(如果找不到可能默认是空,登录时密码直接回车,否则可能安装有问题)

进入bin目录:

cd /usr/local/mysql/bin/

登录mysql:

./mysql -u root -p

拷贝或者输入mysqld.log中获得的默认密码,即可进入mysql命令客户端。

但是,若输入相关命令,则会提示你修改用户密码(注意后面一定要加;)。

show databases;

假设密码修改为xh2018

mysql> set password=password(“xh2018”);

设置远程登录权限

mysql>grant all privileges on *.* to ‘root’@’%’ identified by ‘xh2018’;

立即生效:

mysql> flush privileges;

退出quit 或者 exit;

mysql> quit;

 

至此,mysql安装流程已结束。

开机服务启动设置:

把support-files/mysql.server 拷贝为/etc/init.d/mysql:

cp -a /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql

查看是否拷贝成功

查看mysql服务是否在服务配置中

chkconfig –list mysql

若没有,则把mysql注册为开机启动的服务,然后在进行查看

chkconfig –add mysql

chkconfig –list mysql

启动 或 停止

service mysql start

service mysql stop

 

创建快捷方式:
服务启动后,直接运行mysql -u root -p即可登录,不需要进入到对应的目录。

ln -s /usr/local/mysql/bin/mysql /usr/bin

 

使用Navicat 连接数据库时会出现

说明你的防火墙没有关。

解决方案:

//临时关闭 systemctl stop firewalld

//禁止开机启动

systemctl disable firewalld

Removed symlink /etc/systemd/system/multi-user.target.wants/firewalld.service.

Removed symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.
——————— 
 

mysql升级5.7版本以后,安全性大幅度上升。

但是呢。。。带复杂的记不住。额额。。本来脑子就不好使,还记那么复杂,尤其是本地就更没必要,还是root方便。

进入mysql

mysql> SHOW VARIABLES LIKE ‘vali%’;
+————————————–+——–+
| Variable_name                        | Value  |
+————————————–+——–+
| validate_password_dictionary_file    |        |
| validate_password_length             | 8      |
| validate_password_mixed_case_count   | 1      |
| validate_password_number_count       | 1      |
| validate_password_policy             | MEDIUM |
| validate_password_special_char_count | 1      |
+————————————–+——–+
6 rows in set (0.00 sec)

根据官方文档可以发现策略为1,即MEDIUM 

5.7默认会安装这个插件,若没有安装,则SHOW VARIABLES LIKE ‘vali%’则会返回空。对应参数的value值也为默认值,以下是这些值的解释

 validate_password_length 8 # 密码的最小长度,此处为8。
 validate_password_mixed_case_count 1 # 至少要包含小写或大写字母的个数,此处为1。
 validate_password_number_count 1 # 至少要包含的数字的个数,此处为1。
 validate_password_policy MEDIUM # 强度等级,其中其值可设置为0、1、2。分别对应:
                           【0/LOW】:只检查长度。
                           【1/MEDIUM】:在0等级的基础上多检查数字、大小写、特殊字符。
                           【2/STRONG】:在1等级的基础上多检查特殊字符字典文件,此处为1。
 validate_password_special_char_count 1 # 至少要包含的个数字符的个数,此处为1。
所以你更改密码必须满足:数字、小写字母、大写字母 、特殊字符、长度至少8位
怎么改呢??

想要关闭这个插件,则在配置文件中加入 validate_password=off   并重启mysqld即可:

在 vim /etc/my.cnf配置文件中增加

[mysqld]
validate_password=off
然后重启mysql 就 ok了.

重新启动mysqld
#/etc/init.d/mysqld restart ( service mysqld restart )
重如果想把密码改回来 进入mysql 执行 5.7的数据库没有了password字段 用的是authentication_string字段
mysql> update mysql.user set authentication_string=password(‘root’) where user=’root’ ;

最后你还要设置一下过期时间,以防止密码失效。

在/etc/my.cnf配置文件中增加

[mysqld]
default_password_lifetime=0
或者直接通过命令设置

ALTER USER ‘script’@’localhost’ PASSWORD EXPIRE NEVER

——————— 
 

防火墙
shell> firewall-cmd –zone=public –add-port=3306/tcp –permanent  # –permanent选项为永久生效,没有此参数重启后失效
shell> firewall-cmd –reload  #重新加载防火墙

将MySQL数据库的动态链接库共享至系统链接库

一般MySQL数据库还会被类似于PHP等服务调用,所以我们需要将MySQL编译后的lib库文件添加至当前Linux主机链接库 /etc/ld.so.conf.d/
下,这样MySQL服务就可以被其它服务调用了。

 [root@snails mysql-5.7.13]# ldconfig |grep mysql
[root@snails mysql-5.7.13]# echo "/usr/local/mysql/lib" > /etc/ld.so.conf.d/mysql.conf
[root@snails mysql-5.7.13]# ldconfig
[root@snails mysql-5.7.13]# ldconfig -v |grep mysql
ldconfig: 无法对 /libx32 进行 stat 操作: 没有那个文件或目录
ldconfig: 多次给出路径“/usr/lib”
ldconfig: 多次给出路径“/usr/lib64”
ldconfig: 无法对 /usr/libx32 进行 stat 操作: 没有那个文件或目录
/usr/lib64/mysql:
    libmysqlclient.so.18 -> libmysqlclient.so.18.0.0
/usr/local/mysql/lib:
    libmysqlclient.so.20 -> libmysqlclient.so.20.3.0

配置MySQL环境变量:

vim /root/.bash_profile

找到下面一行:

PATH=$PATH:$HOME/bin

修改为:

PATH=$PATH:$HOME/bin:/var/mysql/bin

转载自:https://blog.csdn.net/sqzhao/article/details/88058536

You may also like...