CentOS部署MySQL

CentOS7 MySQL数据库安装和配置

一、系统环境

yum update升级以后的系统版本为:

1
2
[root@localhost garfield]# cat /etc.redhat-release
CentOS Linux release 7.8.2003(core)

二、MySQL安装

依次输入下列命令进行安装。

1
2
3
# yum install mysql
# yum install mysql-devel
# yum install mysql-server

安装mysql和mysql-devel都成功,但是安装mysql-server失败,如下:

1
2
3
4
5
6
7
8
[root@localhost garfield]# yum install mysql-server
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
* base: mirrors.sina.cn
* extras: mirrors.sina.cn
* updates: mirrors.sina.cn
No package mysql-server available.
Error: Nothing to do

原因是CentOS7版本将MySQL数据库软件从默认的程序列表中移除,用mariadb代替了。下面给出解决方法:

官网下载安装mysql-server

依次输入下列命令:

1
2
3
# wget http://dev.mysql.com/get/mysql-community-release-el7-5.noarch.rpm
# rpm -ivh mysql-community-release-el7-5.noarch.rpm
# yum install mysql-community-server

安装成功后重启MySQL服务。

1
# service mysqld restart

初次安装MySQL,root账户没有密码。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
[root@localhost garfield]# mysql -u root 
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 3
Server version: 5.6.26 MySQL Community Server (GPL)

Copyright (c) 2000, 2015, 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 |
| test |
+--------------------+
4 rows in set (0.01 sec)

mysql>

设置密码。

1
2
mysql> set password for 'root'@'localhost' =password('password');
Query OK, 0 rows affected (0.00 sec)

安装完以后,mariadb自动被替换,将不再生效,使用下列的命令将其移除:

1
[root@localhost garfield]# rpm -qa |grep mariadb

三、配置MySQL

1. 编码

MySQL配置文件为/etc/my.cnf

最后加上编码配置。

1
2
[mysql]
default-character-set =utf8
2. 远程连接设置

把在所有数据库的所有表的所有权限赋值给位于所有IP地址的root用户。

1
mysql> grant all privileges on *.* to root@'%'identified by 'password';

如果是新用户而不是root,则要先新建用户。

1
mysql>create user 'username'@'%' identified by 'password';

此时就可以进行远程连接了。