配置mysql yum源
[root@iZbp1j6oiamq7t2otpryarZ ~]# cd /data/[root@iZbp1j6oiamq7t2otpryarZ data]# lltotal 0###################################下载mysql源安装包#[root@iZbp1j6oiamq7t2otpryarZ data]# wget -P ./ http://dev.mysql.com/get/mysql57-community-release-el7-8.noarch.rpm--2017-11-02 13:04:56-- http://dev.mysql.com/get/mysql57-community-release-el7-8.noarch.rpmResolving dev.mysql.com (dev.mysql.com)... 137.254.60.11Connecting to dev.mysql.com (dev.mysql.com)|137.254.60.11|:80... connected.HTTP request sent, awaiting response... 301 Moved PermanentlyLocation: https://dev.mysql.com/get/mysql57-community-release-el7-8.noarch.rpm [following]--2017-11-02 13:04:57-- https://dev.mysql.com/get/mysql57-community-release-el7-8.noarch.rpmConnecting to dev.mysql.com (dev.mysql.com)|137.254.60.11|:443... connected.HTTP request sent, awaiting response... 302 FoundLocation: https://repo.mysql.com//mysql57-community-release-el7-8.noarch.rpm [following]--2017-11-02 13:04:59-- https://repo.mysql.com//mysql57-community-release-el7-8.noarch.rpmResolving repo.mysql.com (repo.mysql.com)... 118.215.180.109Connecting to repo.mysql.com (repo.mysql.com)|118.215.180.109|:443... connected.HTTP request sent, awaiting response... 200 OKLength: 9116 (8.9K) [application/x-redhat-package-manager]Saving to: ‘./mysql57-community-release-el7-8.noarch.rpm’100%[===================================================================================================>] 9,116 --.-K/s in 0s 2017-11-02 13:04:59 (145 MB/s) - ‘./mysql57-community-release-el7-8.noarch.rpm’ saved [9116/9116][root@iZbp1j6oiamq7t2otpryarZ data]# lltotal 12-rw-r--r-- 1 root root 9116 Apr 11 2016 mysql57-community-release-el7-8.noarch.rpm####################################安装mysql源#[root@iZbp1j6oiamq7t2otpryarZ data]# yum localinstall mysql57-community-release-el7-8.noarch.rpmLoaded plugins: fastestmirrorExamining mysql57-community-release-el7-8.noarch.rpm: mysql57-community-release-el7-8.noarchMarking mysql57-community-release-el7-8.noarch.rpm to be installedResolving Dependencies--> Running transaction check---> Package mysql57-community-release.noarch 0:el7-8 will be installed--> Finished Dependency ResolutionDependencies Resolved============================================================================================================================================= Package Arch Version Repository Size=============================================================================================================================================Installing: mysql57-community-release noarch el7-8 /mysql57-community-release-el7-8.noarch 8.2 kTransaction Summary=============================================================================================================================================Install 1 PackageTotal size: 8.2 kInstalled size: 8.2 kIs this ok [y/d/N]: yDownloading packages:Running transaction checkRunning transaction testTransaction test succeededRunning transaction Installing : mysql57-community-release-el7-8.noarch 1/1 Verifying : mysql57-community-release-el7-8.noarch 1/1 Installed: mysql57-community-release.noarch 0:el7-8 Complete!####################################检查mysql源是否安装成功#[root@iZbp1j6oiamq7t2otpryarZ data]# yum repolist enabled | grep "mysql.*-community.*"mysql-connectors-community/x86_64 MySQL Connectors Community 42mysql-tools-community/x86_64 MySQL Tools Community 51mysql57-community/x86_64 MySQL 5.7 Community Server 227###########看到上面内容,表示安装成功。##################################### mysql源配置文件:/etc/yum.repos.d/mysql-community.repo# 比如要安装5.6版本,可将5.7源的enabled=1改成enabled=0。并将5.6源的enabled=0改成enabled=1即可。####################################[root@iZbp1j6oiamq7t2otpryarZ data]# cat /etc/yum.repos.d/mysql-community.repo[mysql-connectors-community]name=MySQL Connectors Communitybaseurl=http://repo.mysql.com/yum/mysql-connectors-community/el/7/$basearch/enabled=1gpgcheck=1gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql[mysql-tools-community]name=MySQL Tools Communitybaseurl=http://repo.mysql.com/yum/mysql-tools-community/el/7/$basearch/enabled=1gpgcheck=1gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql# Enable to use MySQL 5.5[mysql55-community]name=MySQL 5.5 Community Serverbaseurl=http://repo.mysql.com/yum/mysql-5.5-community/el/7/$basearch/enabled=0gpgcheck=1gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql# Enable to use MySQL 5.6[mysql56-community]name=MySQL 5.6 Community Serverbaseurl=http://repo.mysql.com/yum/mysql-5.6-community/el/7/$basearch/enabled=0gpgcheck=1gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql[mysql57-community]name=MySQL 5.7 Community Serverbaseurl=http://repo.mysql.com/yum/mysql-5.7-community/el/7/$basearch/enabled=1gpgcheck=1gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql[mysql-tools-preview]name=MySQL Tools Previewbaseurl=http://repo.mysql.com/yum/mysql-tools-preview/el/7/$basearch/enabled=0gpgcheck=1gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql[root@iZbp1j6oiamq7t2otpryarZ data]#
安装mysql:
#################################### 安装MySQL #[root@iZbp1j6oiamq7t2otpryarZ data]# yum install mysql-community-serverLoaded plugins: fastestmirrorLoading mirror speeds from cached hostfileResolving Dependencies--> Running transaction check---> Package mysql-community-server.x86_64 0:5.7.20-1.el7 will be installed--> Processing Dependency: mysql-community-common(x86-64) = 5.7.20-1.el7 for package: mysql-community-server-5.7.20-1.el7.x86_64--> Processing Dependency: mysql-community-client(x86-64) >= 5.7.9 for package: mysql-community-server-5.7.20-1.el7.x86_64--> Processing Dependency: libaio.so.1(LIBAIO_0.4)(64bit) for package: mysql-community-server-5.7.20-1.el7.x86_64--> Processing Dependency: libaio.so.1(LIBAIO_0.1)(64bit) for package: mysql-community-server-5.7.20-1.el7.x86_64--> Processing Dependency: libaio.so.1()(64bit) for package: mysql-community-server-5.7.20-1.el7.x86_64--> Running transaction check---> Package libaio.x86_64 0:0.3.109-13.el7 will be installed---> Package mysql-community-client.x86_64 0:5.7.20-1.el7 will be installed--> Processing Dependency: mysql-community-libs(x86-64) >= 5.7.9 for package: mysql-community-client-5.7.20-1.el7.x86_64---> Package mysql-community-common.x86_64 0:5.7.20-1.el7 will be installed--> Running transaction check---> Package mariadb-libs.x86_64 1:5.5.52-1.el7 will be obsoleted--> Processing Dependency: libmysqlclient.so.18()(64bit) for package: 2:postfix-2.10.1-6.el7.x86_64--> Processing Dependency: libmysqlclient.so.18(libmysqlclient_18)(64bit) for package: 2:postfix-2.10.1-6.el7.x86_64---> Package mysql-community-libs.x86_64 0:5.7.20-1.el7 will be obsoleting--> Running transaction check---> Package mysql-community-libs-compat.x86_64 0:5.7.20-1.el7 will be obsoleting--> Finished Dependency ResolutionDependencies Resolved============================================================================================================================================= Package Arch Version Repository Size=============================================================================================================================================Installing: mysql-community-libs x86_64 5.7.20-1.el7 mysql57-community 2.1 M replacing mariadb-libs.x86_64 1:5.5.52-1.el7 mysql-community-libs-compat x86_64 5.7.20-1.el7 mysql57-community 2.0 M replacing mariadb-libs.x86_64 1:5.5.52-1.el7 mysql-community-server x86_64 5.7.20-1.el7 mysql57-community 164 MInstalling for dependencies: libaio x86_64 0.3.109-13.el7 base 24 k mysql-community-client x86_64 5.7.20-1.el7 mysql57-community 24 M mysql-community-common x86_64 5.7.20-1.el7 mysql57-community 272 kTransaction Summary=============================================================================================================================================Install 3 Packages (+3 Dependent packages)Total download size: 192 MIs this ok [y/d/N]: yDownloading packages:(1/6): libaio-0.3.109-13.el7.x86_64.rpm | 24 kB 00:00:00 warning: /var/cache/yum/x86_64/7/mysql57-community/packages/mysql-community-common-5.7.20-1.el7.x86_64.rpm: Header V3 DSA/SHA1 Signature, key ID 5072e1f5: NOKEYPublic key for mysql-community-common-5.7.20-1.el7.x86_64.rpm is not installed(2/6): mysql-community-common-5.7.20-1.el7.x86_64.rpm | 272 kB 00:00:00 (3/6): mysql-community-libs-5.7.20-1.el7.x86_64.rpm | 2.1 MB 00:00:00 (4/6): mysql-community-libs-compat-5.7.20-1.el7.x86_64.rpm | 2.0 MB 00:00:00 (5/6): mysql-community-client-5.7.20-1.el7.x86_64.rpm | 24 MB 00:00:08 (6/6): mysql-community-server-5.7.20-1.el7.x86_64.rpm | 164 MB 00:01:10 ---------------------------------------------------------------------------------------------------------------------------------------------Total 2.6 MB/s | 192 MB 00:01:13 Retrieving key from file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysqlImporting GPG key 0x5072E1F5: Userid : "MySQL Release Engineering" Fingerprint: a4a9 4068 76fc bd3c 4567 70c8 8c71 8d3b 5072 e1f5 Package : mysql57-community-release-el7-8.noarch (installed) From : /etc/pki/rpm-gpg/RPM-GPG-KEY-mysqlIs this ok [y/N]: yRunning transaction checkRunning transaction testTransaction test succeededRunning transaction Installing : mysql-community-common-5.7.20-1.el7.x86_64 1/7 Installing : mysql-community-libs-5.7.20-1.el7.x86_64 2/7 Installing : mysql-community-client-5.7.20-1.el7.x86_64 3/7 Installing : libaio-0.3.109-13.el7.x86_64 4/7 Installing : mysql-community-server-5.7.20-1.el7.x86_64 5/7 Installing : mysql-community-libs-compat-5.7.20-1.el7.x86_64 6/7 Erasing : 1:mariadb-libs-5.5.52-1.el7.x86_64 7/7 Verifying : mysql-community-libs-5.7.20-1.el7.x86_64 1/7 Verifying : mysql-community-server-5.7.20-1.el7.x86_64 2/7 Verifying : mysql-community-common-5.7.20-1.el7.x86_64 3/7 Verifying : mysql-community-client-5.7.20-1.el7.x86_64 4/7 Verifying : mysql-community-libs-compat-5.7.20-1.el7.x86_64 5/7 Verifying : libaio-0.3.109-13.el7.x86_64 6/7 Verifying : 1:mariadb-libs-5.5.52-1.el7.x86_64 7/7 Installed: mysql-community-libs.x86_64 0:5.7.20-1.el7 mysql-community-libs-compat.x86_64 0:5.7.20-1.el7 mysql-community-server.x86_64 0:5.7.20-1.el7Dependency Installed: libaio.x86_64 0:0.3.109-13.el7 mysql-community-client.x86_64 0:5.7.20-1.el7 mysql-community-common.x86_64 0:5.7.20-1.el7 Replaced: mariadb-libs.x86_64 1:5.5.52-1.el7 Complete!
启动mysql服务
[root@iZbp1j6oiamq7t2otpryarZ data]# systemctl start mysqld[root@iZbp1j6oiamq7t2otpryarZ data]# systemctl status mysqld● mysqld.service - MySQL Server Loaded: loaded (/usr/lib/systemd/system/mysqld.service; enabled; vendor preset: disabled) Active: active (running) since Thu 2017-11-02 13:23:48 CST; 18s ago Docs: man:mysqld(8) http://dev.mysql.com/doc/refman/en/using-systemd.html Process: 23892 ExecStart=/usr/sbin/mysqld --daemonize --pid-file=/var/run/mysqld/mysqld.pid $MYSQLD_OPTS (code=exited, status=0/SUCCESS) Process: 23818 ExecStartPre=/usr/bin/mysqld_pre_systemd (code=exited, status=0/SUCCESS) Main PID: 23895 (mysqld) CGroup: /system.slice/mysqld.service └─23895 /usr/sbin/mysqld --daemonize --pid-file=/var/run/mysqld/mysqld.pidNov 02 13:23:42 iZbp1j6oiamq7t2otpryarZ systemd[1]: Starting MySQL Server...Nov 02 13:23:48 iZbp1j6oiamq7t2otpryarZ systemd[1]: Started MySQL Server.
开机启动
[root@iZbp1j6oiamq7t2otpryarZ data]# systemctl enable mysqld[root@iZbp1j6oiamq7t2otpryarZ data]# systemctl daemon-reload
停止mysql服务
[root@iZbp1j6oiamq7t2otpryarZ data]# systemctl stop mysqld[root@iZbp1j6oiamq7t2otpryarZ data]# systemctl status mysqld● mysqld.service - MySQL Server Loaded: loaded (/usr/lib/systemd/system/mysqld.service; enabled; vendor preset: disabled) Active: inactive (dead) since Thu 2017-11-02 13:31:35 CST; 5s ago Docs: man:mysqld(8) http://dev.mysql.com/doc/refman/en/using-systemd.html Main PID: 23895 (code=exited, status=0/SUCCESS)Nov 02 13:23:42 iZbp1j6oiamq7t2otpryarZ systemd[1]: Starting MySQL Server...Nov 02 13:23:48 iZbp1j6oiamq7t2otpryarZ systemd[1]: Started MySQL Server.Nov 02 13:31:33 iZbp1j6oiamq7t2otpryarZ systemd[1]: Stopping MySQL Server...Nov 02 13:31:35 iZbp1j6oiamq7t2otpryarZ systemd[1]: Stopped MySQL Server.[root@iZbp1j6oiamq7t2otpryarZ data]#
更改数据文件位置:
将/var/lib下的mysql目录,mv(移动)到/data目录下:
为什么要用mv命令,而不用cp命令呢?应为linux文件系统特殊性,mv命令能保留文件的所有属性和权限,尤其是selinux属性。如果用cp命令,就需要回头再去设置mysql文件夹的selinux属性,本人因很头疼selinux故能避则避。
[root@iZbp1j6oiamq7t2otpryarZ data]# mv /var/lib/mysql /data/mysql[root@iZbp1j6oiamq7t2otpryarZ data]# lltotal 12drwxr-x--x 5 mysql mysql 314 Nov 2 13:31 mysql-rw-r--r-- 1 root root 9116 Apr 11 2016 mysql57-community-release-el7-8.noarch.rpm[root@iZbp1j6oiamq7t2otpryarZ data]#
修改mysql配置文件/etc/my.cnf。将datadir和socket的路径改为/data目录下:
[root@iZbp1j6oiamq7t2otpryarZ data]# cat /etc/my.cnf# For advice on how to change settings please see# http://dev.mysql.com/doc/refman/5.7/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 leading # to turn on a very important data integrity option: logging# changes to the binary log between backups.# 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 = 2Mdatadir=/var/lib/mysqlsocket=/var/lib/mysql/mysql.sock# Disabling symbolic-links is recommended to prevent assorted security riskssymbolic-links=0log-error=/var/log/mysqld.logpid-file=/var/run/mysqld/mysqld.pid[root@iZbp1j6oiamq7t2otpryarZ data]# vi /etc/my.cnf[root@iZbp1j6oiamq7t2otpryarZ data]# cat /etc/my.cnf# For advice on how to change settings please see# http://dev.mysql.com/doc/refman/5.7/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 leading # to turn on a very important data integrity option: logging# changes to the binary log between backups.# 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 = 2Mdatadir=/data/mysqlsocket=/data/mysql/mysql.sock[mysqld_safe]socket=/data/mysql/mysql.sock[client]socket=/data/mysql/mysql.sock[mysql.server]socket=/data/mysql/mysql.sock# Disabling symbolic-links is recommended to prevent assorted security riskssymbolic-links=0log-error=/var/log/mysqld.logpid-file=/var/run/mysqld/mysqld.pid[root@iZbp1j6oiamq7t2otpryarZ data]#
然后重新启动mysql服务 :
[root@iZbp1j6oiamq7t2otpryarZ data]# systemctl restart mysqld[root@iZbp1j6oiamq7t2otpryarZ data]# systemctl status mysqld● mysqld.service - MySQL Server Loaded: loaded (/usr/lib/systemd/system/mysqld.service; enabled; vendor preset: disabled) Active: active (running) since Thu 2017-11-02 13:40:54 CST; 5s ago Docs: man:mysqld(8) http://dev.mysql.com/doc/refman/en/using-systemd.html Process: 24037 ExecStart=/usr/sbin/mysqld --daemonize --pid-file=/var/run/mysqld/mysqld.pid $MYSQLD_OPTS (code=exited, status=0/SUCCESS) Process: 24019 ExecStartPre=/usr/bin/mysqld_pre_systemd (code=exited, status=0/SUCCESS) Main PID: 24040 (mysqld) CGroup: /system.slice/mysqld.service └─24040 /usr/sbin/mysqld --daemonize --pid-file=/var/run/mysqld/mysqld.pidNov 02 13:40:53 iZbp1j6oiamq7t2otpryarZ systemd[1]: Starting MySQL Server...Nov 02 13:40:54 iZbp1j6oiamq7t2otpryarZ systemd[1]: Started MySQL Server.[root@iZbp1j6oiamq7t2otpryarZ data]#
修改root本地登录密码
mysql安装完成之后,在/var/log/mysqld.log文件中给root生成了一个默认密码。通过下面的方式找到root默认密码,然后登录mysql进行修改:
[root@iZbp1j6oiamq7t2otpryarZ data]# grep 'temporary password' /var/log/mysqld.log2017-11-02T05:23:44.524190Z 1 [Note] A temporary password is generated for root@localhost: MyOldPass123![root@iZbp1j6oiamq7t2otpryarZ data]#
[root@iZbp1j6oiamq7t2otpryarZ data]# mysql -uroot -pEnter password: Welcome to the MySQL monitor. Commands end with ; or \g.Your MySQL connection id is 3Server version: 5.7.20Copyright (c) 2000, 2017, Oracle and/or its affiliates. All rights reserved.Oracle is a registered trademark of Oracle Corporation and/or itsaffiliates. Other names may be trademarks of their respectiveowners.Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.mysql> mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass123!';
或者
mysql> set password for 'root'@'localhost'=password('MyNewPass123!');
注意:
mysql5.7默认安装了密码安全检查插件(validate_password),默认密码检查策略要求密码必须包含:大小写字母、数字和特殊符号,并且长度不能少于8位,否则会提示:mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'gq123!mysql';ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
通过msyql环境变量可以查看密码策略的相关信息:
mysql> show variables like '%password%';+---------------------------------------+--------+| Variable_name | Value |+---------------------------------------+--------+| default_password_lifetime | 0 || disconnect_on_expired_password | ON || log_builtin_as_identified_by_password | OFF || mysql_native_password_proxy_users | OFF || old_passwords | 0 || report_password | || sha256_password_proxy_users | OFF || 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 || validate_password_special_char_count | 1 |+---------------------------------------+--------+14 rows in set (0.00 sec)mysql>
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 |
1 or MEDIUM | Length; numeric, lowercase/uppercase, and special characters |
2 or STRONG | Length; numeric, lowercase/uppercase, and special characters; dictionary file |
MySQL官网密码策略详细说明:
修改密码策略
在/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允许远程连接,或者添加一个允许远程连接的帐户,为了安全起见,我添加一个新的帐户:
mysql> GRANT ALL PRIVILEGES ON *.* TO 'yuanchengyonghu'@'%' IDENTIFIED BY 'MyNewPass123' WITH GRANT OPTION;
配置默认编码为utf8
修改/etc/my.cnf配置文件,在[mysqld]下添加编码配置,如下所示:
#在[mysqld]下添加如下内容#character_set_server=utf8init_connect='SET NAMES utf8'
设置mysql大小不敏感
lower_case_table_names=1
设置最大连接数及超时时间
max_connections=1000#max_user_connections=500wait_timeout=2880
重新启动mysql服务,查看数据库默认编码如下:
[root@iZbp1j6oiamq7t2otpryarZ data]# mysql -uroot -pEnter password: Welcome to the MySQL monitor. Commands end with ; or \g.Your MySQL connection id is 5Server version: 5.7.20 MySQL Community Server (GPL)Copyright (c) 2000, 2017, Oracle and/or its affiliates. All rights reserved.Oracle is a registered trademark of Oracle Corporation and/or itsaffiliates. Other names may be trademarks of their respectiveowners.Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.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/ |+--------------------------+----------------------------+8 rows in set (0.01 sec)mysql>
默认配置文件路径:
配置文件:/etc/my.cnf
日志文件:/var/log/var/log/mysqld.log 服务启动脚本:/usr/lib/systemd/system/mysqld.service socket文件:/var/run/mysqld/mysqld.pid