环境

  • CentOS Linux release 7.5.1804 (Core)
  • MySQL:mysql80-community-release-el7-1

检查:

在centos7中默认的是mariadb,先检查系统中是否有MySQL的安装

rpm -qa | grep mysql
[linga@localhost ~]$ rpm -qa | grep mysql
[linga@localhost ~]$

这里返回空值,说明是没有安装源

下载安装MySQL源

先进入本机的源文件目录:

cd /usr/local/src

下载MySQL的reop源(这里用的是MySQL8.0版本的,官网介绍说比7.0块2倍):

weget https://dev.mysql.com/get/mysql80-community-release-el7-1.noarch.rpm

安装rpm包:

安装MySQL

使用yum源来安装mysql-server:

yum install -y mysql-server

启动mysql服务:

systemctl start mysqld

设置开机启动MySQL服务:

systemctl enable mysqld

修改root本地登录密码

在日志中查找密码

mysql安装完成之后,在/var/log/mysqld.log文件中给root生成了一个默认密码。通过下面的方式找到root默认密码:

cat /var/log/mysqld.log
[linga@localhost ~]$ cat /var/log/mysqld.log I grep temporary
[linga@localhost ~]$ 2018-08-28T14:51:41.543460Z 5 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: S0rlNA:RDvu#

找到默认密码是:S0rlNA:RDvu#,然后登陆数据库:

mysql -u root -p

修改密码

输入找到的默认密码,如果要操作数据库时提示:

mysql> use mysql;
ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.

提示通过使用ALTER USER 语法来修改密码:

ALTER USER 'root'@'localhost' IDENTIFIED BY 'xxxxxxxxxx';

或者:

set password for 'root'@'localhost'=password('xxxxxxxxxx');

注意:


mysql5.7默认安装了密码安全检查插件(validate_password),默认密码检查策略要求密码必须包含:大小写字母、数字和特殊符号,并且长度不能少于8位。否则会提示ERROR 1819 (HY000): Your password does not satisfy the current policy requirements错误

通过msyql环境变量可以查看密码策略的相关信息:

show variables like '%password%';
mysql> show variables like '%password%';
+----------------------------------------------+-----------------+
| Variable_name | Value |
+----------------------------------------------+-----------------+
| caching_sha2_password_auto_generate_rsa_keys | ON |
| caching_sha2_password_private_key_path | private_key.pem |
| caching_sha2_password_public_key_path | public_key.pem |
| default_password_lifetime | 0 |
| disconnect_on_expired_password | ON |
| mysql_native_password_proxy_users | OFF |
| password_history | 0 |
| password_reuse_interval | 0 |
| report_password | |
| sha256_password_auto_generate_rsa_keys | ON |
| sha256_password_private_key_path | private_key.pem |
| sha256_password_proxy_users | OFF |
| sha256_password_public_key_path | public_key.pem |
| validate_password.check_user_name | ON |
| 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 |
+----------------------------------------------+-----------------+
20 rows in set (0.01 sec)

其中:

  • validate_password_policy:密码策略,默认为MEDIUM策略
  • validate_password_dictionary_file:密码策略文件,策略为STRONG才需要
  • validate_password_length:密码最少长度
  • validate_password_mixed_case_count:大小写字符长度,至少1个
  • validate_password_number_count :数字至少1个
  • validate_password_special_char_count:特殊字符至少1个

上述参数是默认策略MEDIUM的密码检查规则。

共有以下几种密码策略:

策略 检查规
0 or LOW Length; None
1 or MEDIUM Length; numeric, lowercase/uppercase, and special characters
2 or STRONG Length; lowercase/uppercase, and special characters; dictionary file

MySQL官网密码策略详细说明:http://dev.mysql.com/doc/refman/5.7/en/validate-password-options-variables.html#sysvar_validate_password_policy

修改密码策略:

在/etc/my.cnf文件添加validate_password_policy配置,指定密码策略


选择0(LOW),1(MEDIUM),2(STRONG)其中一种,选择2需要提供密码字典文件

  • validate_password_policy=0

如果不需要密码策略,添加my.cnf文件中添加如下配置禁用即可:

  • validate_password = off

重新启动mysql服务使配置生效:

systemctl restart mysqld

添加远程登陆用户:

默认只允许root帐户在本地登录,如果要在其它机器上连接mysql,必须修改root允许远程连接,或者添加一个允许远程连接的帐户,为了安全起见,我添加一个新的帐户:

GRANT ALL PRIVILEGES ON *.* TO 'yangxin'@'%' IDENTIFIED BY 'Yangxin0917!' WITH GRANT OPTION;

配置默认编码为utf8:

修改/etc/my.cnf配置文件,在[mysqld]下添加编码配置,如下所示:

[linga@localhost ~]$ cat /etc/my.cnf
# For advice on how to change settings please see
# http://dev.mysql.com/doc/refman/8.0/en/server-configuration-defaults.html [mysqld]
#
# Remove leading # and set to the amount of RAM for the most important data
# cache in MySQL. Start at 70% of total RAM for dedicated server, else 10%.
# innodb_buffer_pool_size = 128M
#
# Remove the leading "# " to disable binary logging
# Binary logging captures changes between backups and is enabled by
# default. It's default setting is log_bin=binlog
# disable_log_bin
#
# Remove leading # to set options mainly useful for reporting servers.
# The server defaults are faster for transactions and fast SELECTs.
# Adjust sizes as needed, experiment to find the optimal values.
# join_buffer_size = 128M
# sort_buffer_size = 2M
# read_rnd_buffer_size = 2M
#
# Remove leading # to revert to previous value for default_authentication_plugin,
# this will increase compatibility with older clients. For background, see:
# https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_default_authentication_plugin
# default-authentication-plugin=mysql_native_password # This is manual addition at 2018/8/28 23:55
character_set_server=utf8
init_connect='SET NAMES utf8' datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid

重启mysql服务:

systemctl restart mysqld

看数据库默认编码:

mysql> show variables like '%character%';
+--------------------------+--------------------------------+
| Variable_name | Value |
+--------------------------+--------------------------------+
| character_set_client | utf8mb4 |
| character_set_connection | utf8mb4 |
| character_set_database | utf8 |
| character_set_filesystem | binary |
| character_set_results | utf8mb4 |
| character_set_server | utf8 |
| character_set_system | utf8 |
| character_sets_dir | /usr/share/mysql-8.0/charsets/ |
+--------------------------+--------------------------------+
8 rows in set (0.01 sec)

默认配置文件路径:

  • 配置文件:/etc/my.cnf
  • 日志文件:/var/log//var/log/mysqld.log
  • 服务启动脚本:/usr/lib/systemd/system/mysqld.service
  • socket文件:/var/run/mysqld/mysqld.pid

CentOS 7 安装配置MySQL的更多相关文章

  1. CentOS 7安装配置MySQL 5.7

    概述 前文记录了在Windows系统中安装配置MySQL 5.7(前文连接:https://www.cnblogs.com/Dcl-Snow/p/10513925.html),由于安装部署大数据环境需 ...

  2. CentOS 7 安装配置 MySQL

    https://blog.imzhengfei.com/centos-7-an-zhuang-pei-zhi-mysql/ MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,目前 ...

  3. CentOS 7 安装 配置 MySQL

    第一部分:CentOS 7安装MySQL 5.7 1.下载YUM库 shell > wget http://dev.mysql.com/get/mysql57-community-release ...

  4. 在CentOS下安装配置MySQL(转)

    今天刚把项目做完,需要马上部署到新到的测试服务器上,于是乎,要在服务器上安装环境,由于好久在linux上部署了,手有些生,比较费劲装完,现在把重要步骤贴出,供自己以后参照.1.首先要看看有没有已经安装 ...

  5. 在CentOS下安装配置MySQL

    经常需要在linux环境下部署项目或安装Mysql数据库,由于记性不好,每次都是求助度娘,每次搜到的步骤都不一样,所以每次都在尝试.冒险:于是乎,把安装的重要步骤贴出,供自己以后参照. 1.首先要看看 ...

  6. Centos下安装配置LAMP(Linux+Apache+MySQL+PHP)

    Centos下安装配置LAMP(Linux+Apache+MySQL+PHP)   关于LAMP的各种知识,还请大家自行百度谷歌,在这里就不详细的介绍了,今天主要是介绍一下在Centos下安装,搭建一 ...

  7. Linux普通用户安装配置mysql(非root权限)

    Linux普通用户安装配置mysql(非root权限) 说明:在实际工作中,公司内网的机器我们一般没有root权限,也没有连网,最近参考网上的资料使用一般的账户成功安装mysql,记录如下 Linux ...

  8. CentOS6.5下安装配置MySQL

    CentOS6.5下安装配置MySQL,配置方法如下: 安装mysql数据库:# yum install -y mysql-server mysql mysql-deve 查看mysql-server ...

  9. (转载)Linux下安装配置MySQL+Apache+PHP+WordPress的详细笔记

    Linux下安装配置MySQL+Apache+PHP+WordPress的详细笔记 Linux下配LMAP环境,花了我好几天的时间.之前没有配置过,网上的安装资料比较混乱,加上我用的版本问题,安装过程 ...

随机推荐

  1. 如何检查Windows网络通信端口占用

    最近本地测试jsp程序发现tomcat启动失败,无法监听8080端口,也没记得别的什么程序占用了8080端口,干脆就改成了8090端口先用着.今天找了找Windows上查看网络通信端口占用的方法. 先 ...

  2. JQueryEsayUI的datagrid分页

    1. jsp页面 <%@ page language="java" import="java.util.*" pageEncoding="utf ...

  3. GDI 直线和折线(6)

    设置开始点 MoveToEx 函数用于移动画笔到指定的位置: BOOL MoveToEx( HDC hdc, // 设备环境句柄 int X, // 要移动到的 x 坐标 int Y, // 要移动到 ...

  4. 题解 ZOJ3203 Light Bulb

    也就是loj上的#10016灯泡了... 先上原图: 因为长度肯定是个开口向下的二次函数,所以先是确定用三分来找位置,然后想办法求出当前阴影长度 看到这条斜线,就想到了一次函数,所以就建了一个系,没想 ...

  5. 00068_Date类

    1.类Date表示特定的瞬间,精确到毫秒: 2.查阅Date类的描述,发现Date拥有多个构造函数,只是部分已经过时,但是其中有未过时的构造函数可以把毫秒值转成日期对象: //创建日期对象,把当前的毫 ...

  6. applicationContext-solr.xml

    一.动态切换单机和集群 spring-solr 的配置 <!-- 单机版 solrj --> <bean id = "httpSolrServer" class= ...

  7. solrj 操作 solr 集群版

    一.添加 @Test public void testAddDocument() throws Exception{ //创建一个集群的连接,应该使用 CloudSolrServer,//zkHost ...

  8. 计算机-禁止USB服务

    接到一个任务,禁止集团内所有电脑的USB接口进行文件拷贝,但不能妨碍打印机.鼠标键盘.扫描仪.加密狗等等一切需要USB接口工作的外部设备. 纠结了,这不摆明了让我蛋疼吗? 不过,疼归疼,办法总是要想滴 ...

  9. java的classLoader原理理解和分析

    java的classLoader原理理解和分析 学习了:http://blog.csdn.net/tangkund3218/article/details/50088249 ClassNotFound ...

  10. Java集合(二):List列表

    在上一节中,介绍了Java集合的总体情况.从这节開始,将介绍详细的类.这里不单单介绍类的使用方法.还会试图从源代码的角度分析类的实现.这一节将介绍List接口及实现类.即列表中的链表LinkedLis ...