CentoOS7 上安装MySQL 5.7
来源:互联网 发布:生辰八字高分起名软件 编辑:程序博客网 时间:2024/06/04 18:37
1、进入目录 /usr/local/,创建一个新的目录mysql用于存放安装包
2、查看系统中是否已安装 MySQL 服务:
rpm -qa | grep mysql
或
yum list installed | grep mysql
7如果已安装则删除 MySQL 及其依赖的包:
yum -y remove mysql-libs.x86_64
3、进入目录 /usr/local/mysql,下载 mysql57-community-release-el7-8.noarch.rpm 的 YUM 源:
wget http://repo.mysql.com/mysql57-community-release-el7-8.noarch.rpm
4、安装 mysql57-community-release-el7-8.noarch.rpm:
rpm -ivh mysql57-community-release-el7-8.noarch.rpm
安装完后,得到如下两个包:
mysql-community.repo
mysql-community-source.repo
5、安装 MySQL:
yum install mysql-server
遇到疑问的地方,一路 Y 下去即可;
安装完毕后,在 /var/log/mysqld.log 文件中会自动生成一个随机的密码,我们需要先取得这个随机密码,以用于登录 MySQL 服务端:
grep "password" /var/log/mysqld.log
打印如下内容:
A temporary password is generated forroot@localhost: hilX0U!9i3_6
我们复制root@localhost: 后面的随机字符串,这个字符串就是 MySQL 在安装完成后为我们随机生成的密码
6、 登录到 MySQL 服务端并更新用户 root 的密码:
mysql -u root -philX0U!9i3_6
打印出 MySQL 的版本即表明已登录;
如果出现-bash: 未预期的符号 '(' 附近有语法错误
的错误,可能是密码中有些特殊字符导致的,解决方法是在-p后什么也不写直接回车,命令行会提示你输入密码,这个时候输入密码就能正确登录了
用该密码登录到服务端后,必须马上修改密码,不然会报如下错误:
mysql> select user();ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.
如果只是修改为一个简单的密码,会报以下错误:
mysql> ALTER USER USER() IDENTIFIED BY '12345678';ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
这个其实与validate_password_policy的值有关。
validate_password_policy有以下取值:
Policy Tests Performed
0 or LOW Length
1 or MEDIUM Length; numeric, lowercase/uppercase, and special characters
2 or STRONG Length; numeric, lowercase/uppercase, and special characters; dictionary file
默认是1,即MEDIUM,所以刚开始设置的密码必须符合长度,且必须含有数字,小写或大写字母,特殊字符。
有时候,只是为了自己测试,不想密码设置得那么复杂,譬如说,我只想设置root的密码为123456。
必须修改两个全局参数:
首先,修改validate_password_policy参数的值
mysql> set global validate_password_policy=0;Query OK, 0 rows affected (0.00 sec)
这样,判断密码的标准就基于密码的长度了。这个由validate_password_length参数来决定。
mysql> select @@validate_password_length;+----------------------------+| @@validate_password_length |+----------------------------+| 8 |+----------------------------+1 row in set (0.00 sec)
validate_password_length参数默认为8,它有最小值的限制,最小值为:
validate_password_number_count+ validate_password_special_char_count+ (2 * validate_password_mixed_case_count)
其中,validate_password_number_count指定了密码中数据的长度,validate_password_special_char_count指定了密码中特殊字符的长度,validate_password_mixed_case_count指定了密码中大小字母的长度。
这些参数,默认值均为1,所以validate_password_length最小值为4,如果你显性指定validate_password_length的值小于4,尽管不会报错,但validate_password_length的值将设为4。如下所示:
mysql> select @@validate_password_length;+----------------------------+| @@validate_password_length |+----------------------------+| 8 |+----------------------------+1 row in set (0.00 sec)mysql> set global validate_password_length=1;Query OK, 0 rows affected (0.00 sec)mysql> select @@validate_password_length;+----------------------------+| @@validate_password_length |+----------------------------+| 4 |+----------------------------+1 row in set (0.00 sec)
如果修改了validate_password_number_count,validate_password_special_char_count,validate_password_mixed_case_count中任何一个值,则validate_password_length将进行动态修改。
mysql> select @@validate_password_length;+----------------------------+| @@validate_password_length |+----------------------------+| 4 |+----------------------------+1 row in set (0.00 sec)mysql> select @@validate_password_mixed_case_count;+--------------------------------------+| @@validate_password_mixed_case_count |+--------------------------------------+| 1 |+--------------------------------------+1 row in set (0.00 sec)mysql> set global validate_password_mixed_case_count=2;Query OK, 0 rows affected (0.00 sec)mysql> select @@validate_password_mixed_case_count;+--------------------------------------+| @@validate_password_mixed_case_count |+--------------------------------------+| 2 |+--------------------------------------+1 row in set (0.00 sec)mysql> select @@validate_password_length;+----------------------------+| @@validate_password_length |+----------------------------+| 6 |+----------------------------+1 row in set (0.00 sec)
当然,前提是validate_password插件必须已经安装,MySQL5.7是默认安装的。
那么如何验证validate_password插件是否安装呢?可通过查看以下参数,如果没有安装,则输出将为空。
mysql> SHOW VARIABLES LIKE 'validate_password%';+--------------------------------------+-------+| Variable_name | Value |+--------------------------------------+-------+| validate_password_dictionary_file | || validate_password_length | 6 || validate_password_mixed_case_count | 2 || validate_password_number_count | 1 || validate_password_policy | LOW || validate_password_special_char_count | 1 |+--------------------------------------+-------+rows in set (0.00 sec)
7、访问权限设置
设置用户 root 可以在任意 IP 下被访问:
grant all privileges on *.* to root@"%" identified by "12345678";
设置用户 root 可以在本地被访问:
grant all privileges on *.* to root@"localhost" identified by "12345678";
更新 MySQL 的用户 root的密码:
set password = password('12345678');
刷新权限使之生效:
flush privileges;
添加远程访问权限:
root为远程访问的用户,‘12345678’为密码
grant all on *.* to root@"%" identified by '12345678' with grant option;
然后重启mysql服务,flush privileges不管用
all表示所有权限,也可以只赋予某一项,例如select,update等,不同权限用逗号隔开
. 表示所有数据库的所有表
%表示任意远程计算机
打开 /etc 目录下的 my.cnf 文件(此文件是 MySQL 的主配置文件):
bind-address = 127.0.0.1
改成
bind-address = 0.0.0.0
如果没有的话就加上去
设置防火墙,打开3306端口,允许远程访问3306端口:
firewall-cmd --zone=public --add-port=3306/tcp --permanent
然后重启防火墙
9、设置 MySQL 的字符集为 UTF-8:
打开 /etc 目录下的 my.cnf 文件(此文件是 MySQL 的主配置文件):
/etc/my.cnf
在 [mysqld] 后添加如下代码:
character_set_server=utf8collation-server=utf8_general_ciskip-character-set-client-handshake
再次查看字符集:
mysql> show variables like '%character%';+--------------------------+----------------------------+| Variable_name | Value |+--------------------------+----------------------------+| character_set_client | utf8 || character_set_connection | utf8 || character_set_database | utf8 || character_set_filesystem | binary || character_set_results | utf8 || character_set_server | utf8 || character_set_system | utf8 || character_sets_dir | /usr/share/mysql/charsets/ |+--------------------------+----------------------------+
- CentoOS7 上安装MySQL 5.7
- RabbitMQ入门-3(CentoOS7.x上的安装和配置)
- Windows上 MySQL 5.7+安装步骤
- ubuntu14.04上安装Mysql-5.7.11
- centor 6.5上yum安装mysql 5.7
- Centos 6上 安装 Mysql 5.7.13
- CentOS7上编译安装MySQL 5.7.14
- Ubuntu 16.04 上安装 MySQL 5.7 教程
- centos7上安装mysql-5.7.20版本
- mysql安装不上
- linux上安装mysql
- mysql安装不上
- linux上安装mysql
- Linux上安装MySQL
- centos上安装mysql
- mac上安装MySql
- mac 上安装mysql
- centos上安装mysql
- 在2017年,如何将你的小米4刷上Windows 10 mobile?(后附大量图赏)
- Java中ByteBuffer
- codeforce118A String Task
- 常用的时间工具类
- uva1486 Transportation
- CentoOS7 上安装MySQL 5.7
- 洛谷 P1005 矩阵取数游戏
- 【Unity】中如何通过GPS获取设备经纬度(测试脚本)
- mysql数据库数字格式化和日期时间格式化
- JS 倒计时
- Allegro中如何导入DXF文件
- QT中*.pro文件的写法介绍
- AS 下载/安装/简单使用/创建模拟器
- MSP430F1612 TimerA 定时功能配置