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