您的位置:首页 > 运维架构 > Linux

CentOS 7下使用yum工具安装MySQL 5.7数据库

2017-09-12 19:16 861 查看

CentOS 7下使用yum工具安装MySQL 5.7数据库

实验环境

操作系统:CentOS Linux release 7.3.1611 (Core)

数据库系统: MySQL 5.7.19

IP: 192.168.230.134


MySQL下载

直接使用yum安装mysql包,发现无法正常安装,提示已经安装了mariadb-server数据库,这是因为我的操作系统在安装的时候自动安装了这个数据库,需要先将此数据库卸载

[root@localhost yum.repos.d]# yum install mysql-community-server.x86_64
Loaded plugins: fastestmirror, langpacks
Loading mirror speeds from cached hostfile
* base: mirrors.btte.net
* epel: mirrors.ustc.edu.cn
* extras: mirrors.163.com
* updates: centos.ustc.edu.cn
Resolving Dependencies
--> Running transaction check
---> Package mariadb-server.x86_64 1:5.5.52-1.el7 will be obsoleted
--> Processing Dependency: mariadb-server for package: akonadi-mysql-1.9.2-4.el7.x86_64
---> Package mysql-community-server.x86_64 0:5.7.19-1.el7 will be obsoleting
--> Processing Dependency: mysql-community-common(x86-64) = 5.7.19-1.el7 for package: mysql-community-server-5.7.19-1.el7.x86_64
--> Processing Dependency: mysql-community-client(x86-64) >= 5.7.9 for package: mysql-community-server-5.7.19-1.el7.x86_64
--> Running transaction check
---> Package mariadb.x86_64 1:5.5.52-1.el7 will be obsoleted
---> Package mariadb-server.x86_64 1:5.5.52-1.el7 will be obsoleted
--> Processing Dependency: mariadb-server for package: akonadi-mysql-1.9.2-4.el7.x86_64
---> Package mysql-community-client.x86_64 0:5.7.19-1.el7 will be obsoleting
--> Processing Dependency: mysql-community-libs(x86-64) >= 5.7.9 for package: mysql-community-client-5.7.19-1.el7.x86_64
---> Package mysql-community-common.x86_64 0:5.7.19-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: perl-DBD-MySQL-4.023-5.el7.x86_64
--> Processing Dependency: libmysqlclient.so.18()(64bit) for package: 2:postfix-2.10.1-6.el7.x86_64
--> Processing Dependency: libmysqlclient.so.18()(64bit) for package: 1:qt-mysql-4.8.5-13.el7.x86_64
--> Processing Dependency: libmysqlclient.so.18(libmysqlclient_18)(64bit) for package: perl-DBD-MySQL-4.023-5.el7.x86_64
--> Processing Dependency: libmysqlclient.so.18(libmysqlclient_18)(64bit) for package: 2:postfix-2.10.1-6.el7.x86_64
--> Processing Dependency: libmysqlclient.so.18(libmysqlclient_18)(64bit) for package: 1:qt-mysql-4.8.5-13.el7.x86_64
---> Package mariadb-server.x86_64 1:5.5.52-1.el7 will be obsoleted
--> Processing Dependency: mariadb-server for package: akonadi-mysql-1.9.2-4.el7.x86_64
---> Package mysql-community-libs.x86_64 0:5.7.19-1.el7 will be obsoleting
--> Running transaction check
---> Package mariadb-server.x86_64 1:5.5.52-1.el7 will be obsoleted
--> Processing Dependency: mariadb-server for package: akonadi-mysql-1.9.2-4.el7.x86_64
---> Package mysql-community-libs-compat.x86_64 0:5.7.19-1.el7 will be obsoleting
--> Finished Dependency Resolution
Error: Package: akonadi-mysql-1.9.2-4.el7.x86_64 (@anaconda)
Requires: mariadb-server
Removing: 1:mariadb-server-5.5.52-1.el7.x86_64 (@anaconda)
mariadb-server = 1:5.5.52-1.el7
Obsoleted By: mysql-community-server-5.7.19-1.el7.x86_64 (mysql57-community)
Not found
You could try using --skip-broken to work around the problem
You could try running: rpm -Va --nofiles --nodigest


使用yum 命令先卸载掉mariadb

[root@localhost yum.repos.d]# yum -y remove mariadb-libs.x86_64
Loaded plugins: fastestmirror, langpacks
Resolving Dependencies
--> Running transaction check
---> Package mariadb-libs.x86_64 1:5.5.52-1.el7 will be erased
--> Processing Dependency: libmysqlclient.so.18()(64bit) for package: perl-DBD-MySQL-4.023-5.el7.x86_64
--> Processing Dependency: libmysqlclient.so.18()(64bit) for package: 2:postfix-2.10.1-6.el7.x86_64
--> Processing Dependency: libmysqlclient.so.18()(64bit) for package: 1:qt-mysql-4.8.5-13.el7.x86_64
--> Processing Dependency: libmysqlclient.so.18(libmysqlclient_18)(64bit) for package: perl-DBD-MySQL-4.023-5.el7.x86_64
--> Processing Dependency: libmysqlclient.so.18(libmysqlclient_18)(64bit) for package: 2:postfix-2.10.1-6.el7.x86_64
--> Processing Dependency: libmysqlclient.so.18(libmysqlclient_18)(64bit) for package: 1:qt-mysql-4.8.5-13.el7.x86_64
--> Processing Dependency: mariadb-libs(x86-64) = 1:5.5.52-1.el7 for package: 1:mariadb-server-5.5.52-1.el7.x86_64
--> Processing Dependency: mariadb-libs(x86-64) = 1:5.5.52-1.el7 for package: 1:mariadb-5.5.52-1.el7.x86_64
--> Running transaction check
---> Package mariadb.x86_64 1:5.5.52-1.el7 will be erased
---> Package mariadb-server.x86_64 1:5.5.52-1.el7 will be erased
--> Processing Dependency: mariadb-server for package: akonadi-mysql-1.9.2-4.el7.x86_64
---> Package perl-DBD-MySQL.x86_64 0:4.023-5.el7 will be erased
---> Package postfix.x86_64 2:2.10.1-6.el7 will be erased
---> Package qt-mysql.x86_64 1:4.8.5-13.el7 will be erased
--> Running transaction check
---> Package akonadi-mysql.x86_64 0:1.9.2-4.el7 will be erased
--> Finished Dependency Resolution

Dependencies Resolved

========================================================================================
Package                Arch           Version                  Repository         Size
========================================================================================
Removing:
mariadb-libs           x86_64         1:5.5.52-1.el7           @anaconda         4.4 M
Removing for dependencies:
akonadi-mysql          x86_64         1.9.2-4.el7              @anaconda         9.6 k
mariadb                x86_64         1:5.5.52-1.el7           @anaconda          48 M
mariadb-server         x86_64         1:5.5.52-1.el7           @anaconda          56 M
perl-DBD-MySQL         x86_64         4.023-5.el7              @anaconda         323 k
postfix                x86_64         2:2.10.1-6.el7           @anaconda          12 M
qt-mysql               x86_64         1:4.8.5-13.el7           @anaconda          74 k

Transaction Summary
===========================================================
4000
=============================
Remove  1 Package (+6 Dependent packages)

Installed size: 121 M
Downloading packages:
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
Erasing    : akonadi-mysql-1.9.2-4.el7.x86_64                                     1/7
Erasing    : 1:mariadb-server-5.5.52-1.el7.x86_64                                 2/7
Erasing    : 1:mariadb-5.5.52-1.el7.x86_64                                        3/7
Erasing    : perl-DBD-MySQL-4.023-5.el7.x86_64                                    4/7
Erasing    : 1:qt-mysql-4.8.5-13.el7.x86_64                                       5/7
Erasing    : 2:postfix-2.10.1-6.el7.x86_64                                        6/7
Erasing    : 1:mariadb-libs-5.5.52-1.el7.x86_64                                   7/7
Verifying  : 1:mariadb-5.5.52-1.el7.x86_64                                        1/7
Verifying  : 1:mariadb-server-5.5.52-1.el7.x86_64                                 2/7
Verifying  : akonadi-mysql-1.9.2-4.el7.x86_64                                     3/7
Verifying  : 1:mariadb-libs-5.5.52-1.el7.x86_64                                   4/7
Verifying  : 1:qt-mysql-4.8.5-13.el7.x86_64                                       5/7
Verifying  : 2:postfix-2.10.1-6.el7.x86_64                                        6/7
Verifying  : perl-DBD-MySQL-4.023-5.el7.x86_64                                    7/7

Removed:
mariadb-libs.x86_64 1:5.5.52-1.el7

Dependency Removed:
akonadi-mysql.x86_64 0:1.9.2-4.el7          mariadb.x86_64 1:5.5.52-1.el7
mariadb-server.x86_64 1:5.5.52-1.el7        perl-DBD-MySQL.x86_64 0:4.023-5.el7
postfix.x86_64 2:2.10.1-6.el7               qt-mysql.x86_64 1:4.8.5-13.el7

Complete!


再执行MySQL安装,即可正常安装

[root@localhost yum.repos.d]# yum install mysql-community-server.x86_64
Loaded plugins: fastestmirror, langpacks
Loading mirror speeds from cached hostfile
* base: mirrors.btte.net
* epel: mirrors.ustc.edu.cn
* extras: mirrors.163.com
* updates: centos.ustc.edu.cn
Resolving Dependencies
--> Running transaction check
---> Package mysql-community-server.x86_64 0:5.7.19-1.el7 will be installed
--> Processing Dependency: mysql-community-common(x86-64) = 5.7.19-1.el7 for package: mysql-community-server-5.7.19-1.el7.x86_64
--> Processing Dependency: mysql-community-client(x86-64) >= 5.7.9 for package: mysql-community-server-5.7.19-1.el7.x86_64
--> Running transaction check
---> Package mysql-community-client.x86_64 0:5.7.19-1.el7 will be installed
--> Processing Dependency: mysql-community-libs(x86-64) >= 5.7.9 for package: mysql-community-client-5.7.19-1.el7.x86_64
---> Package mysql-community-common.x86_64 0:5.7.19-1.el7 will be installed
--> Running transaction check
---> Package mysql-community-libs.x86_64 0:5.7.19-1.el7 will be installed
--> Finished Dependency Resolution

Dependencies Resolved

========================================================================================
Package                     Arch        Version           Repository              Size
========================================================================================
Installing:
mysql-community-server      x86_64      5.7.19-1.el7      mysql57-community      164 M
Installing for dependencies:
mysql-community-client      x86_64      5.7.19-1.el7      mysql57-community       24 M
mysql-community-common      x86_64      5.7.19-1.el7      mysql57-community      272 k
mysql-community-libs        x86_64      5.7.19-1.el7      mysql57-community      2.1 M

Transaction Summary
========================================================================================
Install  1 Package (+3 Dependent packages)

Total download size: 190 M
Installed size: 856 M
Is this ok [y/d/N]: y
Downloading packages:
warning: /var/cache/yum/x86_64/7/mysql57-community/packages/mysql-community-common-5.7.19-1.el7.x86_64.rpm: Header V3 DSA/SHA1 Signature, key ID 5072e1f5: NOKEY
Public key for mysql-community-common-5.7.19-1.el7.x86_64.rpm is not installed
(1/4): mysql-community-common-5.7.19-1.el7.x86_64.rpm            | 272 kB  00:00:03
(2/4): mysql-community-libs-5.7.19-1.el7.x86_64.rpm              | 2.1 MB  00:00:06
(3/4): mysql-community-client-5.7.19-1.el7.x86_64.rpm            |  24 MB  00:06:55
(4/4): mysql-community-server-5.7.19-1.el7.x86_64.rpm            | 164 MB  00:31:35
----------------------------------------------------------------------------------------
Total                                                      102 kB/s | 190 MB  31:44
Retrieving key from file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql
Importing GPG key 0x5072E1F5:
Userid     : "MySQL Release Engineering <mysql-build@oss.oracle.com>"
Fingerprint: a4a9 4068 76fc bd3c 4567 70c8 8c71 8d3b 5072 e1f5
Package    : mysql57-community-release-el7-11.noarch (installed)
From       : /etc/pki/rpm-gpg/RPM-GPG-KEY-mysql
Is this ok [y/N]: y
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
Installing : mysql-community-common-5.7.19-1.el7.x86_64                           1/4
Installing : mysql-community-libs-5.7.19-1.el7.x86_64                             2/4
Installing : mysql-community-client-5.7.19-1.el7.x86_64                           3/4
Installing : mysql-community-server-5.7.19-1.el7.x86_64                           4/4
Verifying  : mysql-community-libs-5.7.19-1.el7.x86_64                             1/4
Verifying  : mysql-community-common-5.7.19-1.el7.x86_64                           2/4
Verifying  : mysql-community-client-5.7.19-1.el7.x86_64                           3/4
Verifying  : mysql-community-server-5.7.19-1.el7.x86_64                           4/4

Installed:
mysql-community-server.x86_64 0:5.7.19-1.el7

Dependency Installed:
mysql-community-client.x86_64 0:5.7.19-1.el7
mysql-community-common.x86_64 0:5.7.19-1.el7
mysql-community-libs.x86_64 0:5.7.19-1.el7

Complete!


安装拓展包

[root@localhost yum.repos.d]# yum install mysql-community-devel.x86_64
Loaded plugins: fastestmirror, langpacks
Loading mirror speeds from cached hostfile
* base: mirrors.btte.net
* epel: mirrors.ustc.edu.cn
* extras: mirrors.163.com
* updates: centos.ustc.edu.cn
Resolving Dependencies
--> Running transaction check
---> Package mysql-community-devel.x86_64 0:5.7.19-1.el7 will be installed
--> Finished Dependency Resolution

Dependencies Resolved

========================================================================================
Package                    Arch        Version            Repository              Size
========================================================================================
Installing:
mysql-community-devel      x86_64      5.7.19-1.el7       mysql57-community      3.6 M

Transaction Summary
========================================================================================
Install  1 Package

Total download size: 3.6 M
Installed size: 21 M
Is this ok [y/d/N]: y
Downloading packages:
mysql-community-devel-5.7.19-1.el7.x86_64.rpm                    | 3.6 MB  00:00:11
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
Installing : mysql-community-devel-5.7.19-1.el7.x86_64                            1/1
Verifying  : mysql-community-devel-5.7.19-1.el7.x86_64                            1/1

Installed:
mysql-community-devel.x86_64 0:5.7.19-1.el7

Complete!


MySQL初始化配置

启动mysqld服务,并设为开机自动启动

[root@localhost yum.repos.d]# systemctl start mysqld.service
[root@localhost yum.repos.d]# systemctl enable mysqld.service


这时想进入mysql的时候碰到问题

[root@localhost yum.repos.d]# mysql -uroot -p
Enter password:
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)
[root@localhost yum.repos.d]# mysql -uroot -p
Enter password:
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)
[root@localhost yum.repos.d]# mysql -uroot
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)


经过查文档发现这是由于没有在user表中写入用户信息,只能使用不启动授权表的启动方式:

修改my.cnf配置

[root@localhost etc]# vim /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 = 2M
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock

# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0

log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid

skip-grant-tables


重启MySQL服务

[root@localhost etc]# systemctl restart mysqld


进入数据库,修改user表

[root@localhost etc]# mysql -u root -p
Enter password:
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 3
Server version: 5.7.19 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 its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| sys                |
+--------------------+
4 rows in set (0.00 sec)

mysql> use mysql
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed

mysql> update user set password=password("oracle") where user="root";
ERROR 1054 (42S22): Unknown column 'password' in 'field list'


此时居然发现字段无法修改,经查,这是由于5.7版本user表的字段名做了变更

查询user表的字段:

mysql> mysql> select * from user\G
*************************** 1. row ***************************
Host: localhost
User: root
Select_priv: Y
Insert_priv: Y
Update_priv: Y
Delete_priv: Y
Create_priv: Y
Drop_priv: Y
Reload_priv: Y
Shutdown_priv: Y
Process_priv: Y
File_priv: Y
Grant_priv: Y
References_priv: Y
Index_priv: Y
Alter_priv: Y
Show_db_priv: Y
Super_priv: Y
Create_tmp_table_priv: Y
Lock_tables_priv: Y
Execute_priv: Y
Repl_slave_priv: Y
Repl_client_priv: Y
Create_view_priv: Y
Show_view_priv: Y
Create_routine_priv: Y
Alter_routine_priv: Y
Create_user_priv: Y
Event_priv: Y
Trigger_priv: Y
Create_tablespace_priv: Y
ssl_type:
ssl_cipher:
x509_issuer:
x509_subject:
max_questions: 0
max_updates: 0
max_connections: 0
max_user_connections: 0
plugin: mysql_native_password
authentication_string: *689264C0FE373E6ABF78817EDA7C01C7F9877BA1
password_expired: Y
password_last_changed: 2017-09-12 22:53:42
password_lifetime: NULL
account_locked: N
*************************** 2. row ***************************
Host: localhost
User: mysql.session
Select_priv: N
Insert_priv: N
Update_priv: N
Delete_priv: N
Create_priv: N
Drop_priv: N
Reload_priv: N
Shutdown_priv: N
Process_priv: N
File_priv: N
Grant_priv: N
References_priv: N
Index_priv: N
Alter_priv: N
Show_db_priv: N
Super_priv: Y
Create_tmp_table_priv: N
Lock_tables_priv: N
Execute_priv: N
Repl_slave_priv: N
Repl_client_priv: N
Create_view_priv: N
Show_view_priv: N
Create_routine_priv: N
Alter_routine_priv: N
Create_user_priv: N
Event_priv: N
Trigger_priv: N
Create_tablespace_priv: N
ssl_type:
ssl_cipher:
x509_issuer:
x509_subject:
max_questions: 0
max_updates: 0
max_connections: 0
max_user_connections: 0
plugin: mysql_native_password
authentication_string: *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE
password_expired: N
password_last_changed: 2017-09-12 22:53:42
password_lifetime: NULL
account_locked: Y
*************************** 3. row ***************************
Host: localhost
User: mysql.sys
Select_priv: N
Insert_priv: N
Update_priv: N
Delete_priv: N
Create_priv: N
Drop_priv: N
Reload_priv: N
Shutdown_priv: N
Process_priv: N
File_priv: N
Grant_priv: N
References_priv: N
Index_priv: N
Alter_priv: N
Show_db_priv: N
Super_priv: N
Create_tmp_table_priv: N
Lock_tables_priv: N
Execute_priv: N
Repl_slave_priv: N
Repl_client_priv: N
Create_view_priv: N
Show_view_priv: N
Create_routine_priv: N
Alter_routine_priv: N
Create_user_priv: N
Event_priv: N
Trigger_priv: N
Create_tablespace_priv: N
ssl_type:
ssl_cipher:
x509_issuer:
x509_subject:
max_questions: 0
max_updates: 0
max_connections: 0
max_user_connections: 0
plugin: mysql_native_password
authentication_string: *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE
password_expired: N
password_last_changed: 2017-09-12 22:53:42
password_lifetime: NULL
account_locked: Y
3 rows in set (0.00 sec)


可知道password字段已经变成了authentication_string字段,对我们的代码稍作修改即可:

mysql> update mysql.user set authentication_string=password('oracle') where user='root' ;
Query OK, 1 row affected, 1 warning (0.00 sec)
Rows matched: 1  Changed: 1  Warnings: 1


刷新系统权限并退出

mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)

mysql> quit
Bye


改回my.cnf配置并重启服务

[root@localhost etc]# vim my.cnf
[root@localhost etc]# systemctl restart mysqld


这是再次进入MySQL发现还是有问题

[root@localhost etc]# mysql -u root -p
Enter password:
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 5
Server version: 5.7.19

Copyright (c) 2000, 2017, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> show databases
-> ;
ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.
mysql> set password=password('oracle');
ERROR 1819 (HY000): Your password does not satisfy the current policy requirements


查文档后发现原来MySQL 5.7在安装后会自动启动密码限制进程,密码必须有一定复杂度,即包含大小写和数字,如’MyNewPass4!’,我给出的密码oracle显然不符合标准

由于只是测试环境,我不希望用复杂的密码,所以只能去修改密码限制了:

mysql> set global validate_password_policy=0;
Query OK, 0 rows affected (0.00 sec)

mysql> set global validate_password_length=1;
Query OK, 0 rows affected (0.00 sec)

mysql> set global validate_password_mixed_case_count=2;
Query OK, 0 rows affected (0.00 sec)


这时再去修改密码即可

mysql> alter user 'root'@'localhost' identified by 'oracle';
Query OK, 0 rows affected (0.00 sec)

mysql> quit
Bye


此时MySQL数据库正式配置完成
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  数据库 centos mysql yum