教程六:Linux下安装mysql5.7

Linux下安装mysql

2安装mysql

1、检查当前操作系统是否安装过mysql ,如果安装进行卸载操作

#查看是否安装有mysql
[root@yu ~]# rpm -aq | grep mysql
mysql-community-release-el7-5.noarch
mysql-community-common-5.6.46-2.el7.x86_64
mysql-community-libs-5.6.46-2.el7.x86_64
mysql-community-server-5.6.46-2.el7.x86_64
mysql-community-client-5.6.46-2.el7.x86_64
#卸载:
[root@hd /]# rpm -aq | grep mariadb
mariadb-libs-5.5.65-1.el7.x86_64
[root@hd /]# rpm -e --nodeps mariadb-libs
[root@yu ~]#  rpm -e --nodeps mysql-community-release-el7-5.noarch

2、下载 mysql rpm包

要求在线下载安装,所以必须保证你的虚拟机的Linux系统能正常的访问外网( 上网)

注:如何系统中没安装wget软件, 先安装:

[root@yu ~]# yum –y install wget

使用wget命令下载mysql的repo源:

[root@yu ~]# wget http://repo.mysql.com/mysql57-community-release-el7-10.noarch.rpm

使用rpm 安装mysql 的yum源

[root@yu ~]# rpm -ivh mysql-community-release-el7-5.noarch.rpm 

yum 源安装mysql服务

[root@yu ~]#  yum -y install mysql-server

3、 让mysql服务永久生效

CentOS6及以前版本 CentOS7 作用
service 服务名 start systemctl start 服务名 启动某个服务
service 服务名 stop systemctl stop 服务名 停止
service 服务名 restart systemctl restart 服务名 重启
service 服务名 status systemctl status 服务名 查看状态
systemctl enable 服务名 服务永久生效
systemctl disable 服务名 服务永久关闭
[root@yu /]# systemctl start mysqld 当前有效,关机后失效
[root@yu /]# systemctl  enable  mysqld   #启用系统服务永久生效

4 、配置mysql

A、 查看密码:cat /var/log/mysqld.log | grep password

B、#登陆mysql,  密码:1/d9gn?WDyTi
[root@yu /]#  mysql  -uroot -p 
输入密码 ==》 回车就行了

C、#进入mysql系统数据库
mysql>use mysql;
在执行此语句之前,必须使用ALTER USER语句重置密码
: You must reset your password using ALTER USER statement before executing this statement.
################### 设置roo用户密码
D、#判断修改密码时候新密码是否符合当前的策略,密码不满足会报错,不让修改。
set global validate_password_policy=0; 
set global validate_password_length=3; #密码长度
(选1种:)
(1)mysql> ALTER USER 'root'@'localhost' IDENTIFIED  BY 'qqq1234@';  	
(2)mysql> update user set password=password('qqq1234@') where user='root'; 

刷新:flush privileges;

如果出现【ERROR1054(42S22):Unknown column 'password' in 'field list'】
执行:update mysql.user set authentication_string=password('qqq1234@') where user='root';即可
---------------------------------------------------------------------------
# 查看 新密码校验插件(可选项)
show variables like 'validate_password%';
+--------------------------------------+--------+
| Variable_name                        | Value  |
+--------------------------------------+--------+
| validate_password_check_user_name    | OFF    |
| validate_password_dictionary_file    |        | 字典文件
| validate_password_length             | 8      | 密码长度的最小值。
| validate_password_mixed_case_count   | 1      | 大小写的最小个数。
| validate_password_number_count       | 1      | 密码中数字的最小个数。
| validate_password_policy             | MEDIUM | 0-->low , 1-->MEDIUM , 2-->strong。
| validate_password_special_char_count | 1      | 特殊字符的最小个数。
+--------------------------------------+--------+
---------------------------------------------------------------------------
mysql> select user,host from user; #查看对应user与host关系

# 设置访问权限,可以通过外部连接 数据库
GRANT ALL PRIVILEGES ON *.* TO 远程访问用户名@'IP' IDENTIFIED BY '密码' WITH GRANT OPTION;
如:GRANT ALL PRIVILEGES ON *.* TO 'root'@'%'IDENTIFIED BY 'qqq1234@' WITH GRANT OPTION;
# 刷新马上生效
mysql> flush privileges;
mysql> exit;

# 重启mysql服务
[root@yu /]# systemctl  restart  mysqld;
# 查看进程
ps -e | grep mysqld

5、开放端口:

实际应用场景中防火墙是要打开的,只能开放端口来外部访问。
1、linux防火墙问题:
systemctl stop firewalld;开机就关闭:systemctl disable firewalld

一般是通过开放端口来实现,关闭防火墙容易导致安全问题。    
开端口命令:firewall-cmd --zone=public --add-port=3306/tcp --permanent
重启防火墙:systemctl restart firewalld
命令含义:
--zone #作用域
--add-port=3306/tcp  #添加端口,格式为:端口/通讯协议 
--permanent   #永久生效,没有此参数重启后失效
查看开启的所有端口:netstat -ntlp 或:firewall-cmd --list-ports
permanent
重启防火墙:systemctl restart firewalld
命令含义:
--zone #作用域
--add-port=3306/tcp  #添加端口,格式为:端口/通讯协议 
--permanent   #永久生效,没有此参数重启后失效
查看开启的所有端口:netstat -ntlp 或:firewall-cmd --list-ports

6、自己配置文件 vim /etc/my.cnf

新加:

[client]
default-character-set=utf8mb4
[mysqld]
port=3199
default-storage-engine=INNODB
character-set-server=utf8mb4
collation-server=utf8mb4_general_ci
symbolic-links=0
max_connections=1000

猜你喜欢

转载自blog.csdn.net/qq_42476834/article/details/106032972