如何在CentOS 7上安装MySQL

来源:互联网 发布:淘宝950轮播图片特效 编辑:程序博客网 时间:2024/05/19 02:19

如何在CentOS 7上安装MySQL

更新 由Linode

在GitHub上贡献

查看项目 | 查看文件 | 编辑文件

在CentOS 7上安装MySQL

MySQL是一个流行的数据库管理系统,用于Web和服务器应用程序。但是,MySQL不再位于CentOS的存储库,MariaDB已经成为默认的数据库系统。MariaDB被认为是MySQL的直接替代品,如果你只需要一个数据库系统就足够了。请参阅我们在CentOS 7指南中的MariaDB以获取安装说明。

如果您更喜欢MySQL,本指南将介绍如何在运行CentOS 7的Linode上进行安装,配置和管理。

大型MySQL数据库可能需要大量的内存。出于这个原因,我们建议使用高内存Linode进行这样的设置。

注意
本指南是为非root用户编写的。需要提升特权的命令前缀为sudo如果您不熟悉该sudo命令,可以查看我们的用户和组指南。

在你开始之前

  1. 确保您已经按照入门保护您的服务器指南操作,并设置了Linode的主机名

    要检查你的主机名运行:

    hostnamehostname -f

    第一个命令应显示您的简短主机名,第二个命令应显示您的完全限定的域名(FQDN)。

  2. 更新您的系统:

    sudo yum update
  3. 您将需要wget完成本指南。它可以安装如下:

    yum install wget

安装MySQL

MySQL必须从社区存储库安装

  1. 下载并添加存储库,然后更新。

    wget http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpmsudo rpm -ivh mysql-community-release-el7-5.noarch.rpmyum update
  2. 照常安装MySQL并启动服务。在安装过程中,系统会询问您是否要接受.rpm文件的GPG验证结果。如果没有错误或不匹配,请输入y

    sudo yum install mysql-serversudo systemctl start mysqld

MySQL将默认绑定到本地主机(127.0.0.1)。请参考我们的MySQL远程访问指南,了解如何使用SSH连接到您的数据库。

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

加强MySQL服务器

  1. 运行mysql_secure_installation脚本来解决默认MySQL安装中的一些安全问题。

    sudo mysql_secure_installation

您将可以选择更改MySQL根密码,删除匿名用户帐户,在本地主机外禁用root登录,并删除测试数据库。建议您回答yes这些选项。您可以阅读MySQL参考手册中有关脚本的更多信息

使用MySQL

与MySQL交互的标准工具是mysqlmysql-server包一起安装客户端MySQL客户端通过终端使用。

根登录

  1. 以root用户身份登录到MySQL:

    mysql -u root -p
  2. 出现提示时,输入在运行mysql_secure_installation脚本时分配的根密码。

    然后您将看到一个欢迎标题和MySQL提示符,如下所示:

    mysql>
  3. 要为MySQL提示符生成命令列表,请输入\h你会看到:

    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用户和数据库

  1. 在下面的例子中,testdb是数据库的名称,testuser是用户,password是用户的密码。

    create database testdb;create user 'testuser'@'localhost' identified by 'password';grant all on testdb.* to 'testuser' identified by 'password';

    您可以通过分配数据库权限的同时创建用户来缩短此过程

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

    exit

创建一个示例表

  1. 作为重新登录testuser

    mysql -u testuser -p
  2. 创建一个名为customers的示例表这将创建一个表格,其中包含一个类型为INT的客户ID字段(用于新记录的自动递增,用作主键)以及用于存储客户名称的两个字段。

    use testdb;create table customers (customer_id INT NOT NULL AUTO_INCREMENT PRIMARY KEY, first_name TEXT, last_name TEXT);
  3. 然后退出MySQL。

    exit

重置MySQL根密码

如果你忘记你的root密码,可以重置。

  1. 停止当前的MySQL服务器实例,然后用一个选项重新启动它,不要求输入密码。

    sudo systemctl stop mysqldsudo mysqld_safe --skip-grant-tables &
  2. 用MySQL根帐户重新连接到MySQL服务器。

    mysql -u root
  3. 使用以下命令重置root的密码。password强密码替换

    use mysql;update user SET PASSWORD=PASSWORD("password") WHERE USER='root';flush privileges;exit
  4. 然后重新启动MySQL。

    sudo systemctl start mysqld

调整MySQL

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

  1. 下载MySQL调谐器到您的主目录。

    wget https://raw.githubusercontent.com/major/MySQLTuner-perl/master/mysqltuner.pl
  2. 运行它:

    perl ./mysqltuner.pl

    您将被要求提供MySQL root用户的名字和密码。输出将显示两个感兴趣的领域:一般建议和变量进行调整。

MySQL Tuner是优化MySQL服务器的一个很好的起点,但是对Linode上使用MySQL的应用程序进行额外的配置研究是非常谨慎的。

更多信息

有关此主题的更多信息,您可能希望查阅以下资源。尽管提供这些内容是希望它们有用,但请注意,我们不能保证外部托管材料的准确性和及时性。

  • MySQL 5.6参考手册
  • PHP MySQL手册
  • DBD :: mysql的Perl DBI示例
  • MySQLdb用户指南
  • MySQL调谐器教程

也可以看看

  • 如何在CentOS 6上安装MySQL
  • 如何在Debian 8上安装MySQL
  • 如何在Debian 7上安装MySQL
  • 如何在CentOS 7上安装MariaDB
  • 在Ubuntu 14.04上安装MySQL
window.disqus_title = 'How to Install MySQL on CentOS 7' window.disqus_identifier = 'https:\/\/linode.com\/docs\/databases\/mysql\/how-to-install-mysql-on-centos-7\/' window.disqus_url = 'https:\/\/linode.com\/docs\/databases\/mysql\/how-to-install-mysql-on-centos-7\/' window.disqus_shortname = 'linode-1' (function () {(document).on('lazybeforeunveil', function() { var dsq = document.createElement('script'); dsq.type = 'text/javascript'; dsq.async = true; var disqus_shortname = 'linode-1'; dsq.src = '//' + disqus_shortname + '.disqus.com/embed.js'; (document.getElementsByTagName('head')[0] || document.getElementsByTagName('body')[0]).appendChild(dsq); });Please enable JavaScript to view the <a href="http://disqus.com/?ref_noscript">comments powered by Disqus.</a>评论由Disqus提供

本指南在CC BY-ND 4.0许可下发布。