Techeek's Studio.

在CentOS上搭建MySQL数据库

字数统计: 1.5k阅读时长: 6 min
2018/08/15

MySQL是一种流行的数据库管理系统,用于Web和服务器应用程序。本教程将介绍如何在CentOS 6上安装,配置和管理MySQL。

注意

本教程是为非root用户编写的。您需要一台已经设置好可以使用sudo命令的非root账号的CentOS服务器,并且已开启防火墙。没有服务器的同学可以在这里购买,不过我个人更推荐您使用免费的腾讯云开发者实验室进行试验,学会安装后在购买服务器

准备

  • 本教程以腾讯云CVM为例,在开始前,您首先要获取您主机的名称,要检查您的主机名请运行:
1
2
hostname
hostname -f

第一个命令应显示您的短主机名,第二个命令应显示您所在的域。

  • 更新您的系统:
1
sudo yum update

安装并启动MySQL

  • 安装MySQL并告诉它运行级别:
1
2
sudo yum install mysql-server
sudo /sbin/chkconfig --levels 235 mysqld on
  • 然后启动MySQL服务器:
1
sudo service mysqld start

默认情况下,MySQL将绑定到localhost(127.0.0.1)。

注意

不建议的公共IP上不受限制地访问MySQL,但您可以通过修改/etc/my.cnfbind-address参数来更改它侦听的地址。如果您决定将MySQL绑定到公共IP,则应实现仅允许来自特定IP地址的连接的防火墙规则。

保护MySQL服务器

  • 运行mysql_secure_installation脚本以解决默认MySQL安装中的几个安全问题。
1
sudo mysql_secure_installation

您可以选择更改MySQL root密码,删除匿名用户帐户,禁用localhost之外的root登录,以及删除测试数据库。建议您对这些选项回答“是”。

MySQL使用

与MySQL交互的工具是随mysql-server软件包安装的客户端mysql

root登录

  • 以root用户身份登录MySQL:
1
mysql -u root -p
  • 出现提示时,输入运行mysql_secure_installation脚本时分配的root密码。

然后,您将看到MySQL监视器显示:

1
2
3
4
5
6
7
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 1
Server version: 5.0.45 Source distribution

Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

mysql>
  • 要为MySQL生成帮助命令列表,请输入\h。然后你会看到:
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
26
27
28
29
30
List of all MySQL commands:
Note that all text commands must be first on line and end with ';'
?(\?) Synonym for `help'.
clear (\c) Clear command.
connect(\r) Reconnect to the server. Optional arguments are db and host.
delimiter (\d) Set statement delimiter. NOTE: Takes the rest of the line as new delimiter.
edit(\e) Edit command with $EDITOR.
ego (\G) Send command to mysql server, display result vertically.
exit(\q) Exit mysql. Same as quit.
go (\g) Send command to mysql server.
help(\h) Display this help.
nopager(\n) Disable pager, print to stdout.
notee (\t) Don't write into outfile.
pager (\P) Set PAGER [to_pager]. Print the query results via PAGER.
print (\p) Print current command.
prompt (\R) Change your mysql prompt.
quit(\q) Quit mysql.
rehash (\#) Rebuild completion hash.
source (\.) Execute an SQL script file. Takes a file name as an argument.
status (\s) Get status information from the server.
system (\!) Execute a system shell command.
tee (\T) Set outfile [to_outfile]. Append everything into given outfile.
use (\u) Use another database. Takes database name as argument.
charset(\C) Switch to another charset. Might be needed for processing binlog with multi-byte charsets.
warnings (\W) Show warnings after every statement.
nowarning (\w) Don't show warnings after every statement.

For server side help, type 'help contents'

mysql>

创建一个新的MySQL用户和数据库

  • 在下面的示例中,testdb是数据库的名称,testuser是用户,password是用户的密码。
1
2
3
create database testdb;
create user 'testuser'@'localhost' identified by 'password';
grant all on testdb.* to 'testuser' identified by 'password';

您可以通过在创建用户来快速创建数据库:

1
2
create database testdb;
grant all on testdb.* to 'testuser' identified by 'password';
  • 然后退出MySQL。
1
exit

创建示例表

  • 重新登录testuser
1
mysql -u testuser -p
  • 创建一个名为customers的示例表。其中包含INT整数类型的客户ID字段(对于新记录自动递增,用作主键),以及用于存储客户名称的两个字段。
1
2
use testdb;
create table customers (customer_id INT NOT NULL AUTO_INCREMENT PRIMARY KEY, first_name TEXT, last_name TEXT);
  • 然后退出MySQL。
1
exit

重置MySQL Root密码

如果您忘记了root MySQL密码,可以通过下面的方法重置。

  • 停止当前的MySQL服务器,然后重新启动它。
1
2
sudo /etc/init.d/mysqld stop
sudo mysqld_safe --skip-grant-tables &
  • 使用MySQL root帐户重新连接到MySQL服务器。
1
mysql -u root
  • 使用以下命令重置root的密码。替换password为强密码。
1
2
3
4
use mysql;
update user SET PASSWORD=PASSWORD("password") WHERE USER='root';
flush privileges;
exit
  • 然后重启MySQL。
1
sudo service mysqld restart

您现在可以使用mysql -u root -p再次登录。

优化MySQL

MySQL Tuner是一个Perl脚本,它连接到正在运行的MySQL实例,并根据工作负载提供配置建议。理想情况下,MySQL实例应该在运行MySQL Tuner之前至少运行24小时。实例运行的时间越长,MySQL Tuner给出的建议就越好。

  • 将MySQL Tuner下载到您的主目录。
1
wget https://raw.githubusercontent.com/major/MySQLTuner-perl/master/mysqltuner.pl
  • 要运行它:
1
perl ./mysqltuner.pl

最终这个命令会输出优化的建议,您可以使用这个工具继续优化MySQL。

结论

现在,您已经学会了在CentOS上安装MySQL,如果您在生产环境使用,我还是建议您直接使用云关系型数据库,云关系型数据库让您在云中轻松部署、管理和扩展的关系型数据库,提供安全可靠、伸缩灵活的按需云数据库服务。腾讯云关系型数据库提供 MySQL、SQL Server、MariaDB、PostgreSQL 数据库引擎,并针对数据库引擎的性能进行了优化。云关系型数据库是一种高度可用的托管服务,提供容灾、备份、恢复、监控、迁移等数据库运维全套解决方案,可将您从耗时的数据库管理任务中解放出来,让您有更多时间专注于您的应用和业务。更多Linux教程请前往腾讯云+社区学习更多知识。


参考文献:《How to Install MySQL on CentOS 6》

CATALOG
  1. 1. 准备
  2. 2. 安装并启动MySQL
  3. 3. 保护MySQL服务器
  4. 4. MySQL使用
    1. 4.1. root登录
    2. 4.2. 创建一个新的MySQL用户和数据库
    3. 4.3. 创建示例表
  5. 5. 重置MySQL Root密码
  6. 6. 优化MySQL
  7. 7. 结论