centos6.7 系统安装配置 mysql 数据库并配置远程访问

512 查看

这里我们所说的安装 mysql 实际上是指安装 mysql-server ,就是mysql的服务端,mysql 客户端一般在 我们的系统里已经安装好了,并不需要再次安装了。不过我们也可以在安装 mysql-server 时重新安装 mysql 客户端

使用yum命令安装mysql

使用命令 yum list | grep mysql 查看 yum 上可用的 mysql 数据库版本。

yum list | grep mysql
yum list mysql-server

使用 yum install mysql-server 安装mysql服务端

➜  ~ yum install mysql-server

...此处省略一万字

总下载量:12 M
确定吗?[y/N]:y
下载软件包:
(1/5): mysql-5.1.73-7.el6.i686.rpm                | 904 kB     00:00     
(2/5): mysql-libs-5.1.73-7.el6.i686.rpm           | 1.2 MB     00:00     
(3/5): mysql-server-5.1.73-7.el6.i686.rpm         | 8.8 MB     00:00     
(4/5): perl-DBD-MySQL-4.013-3.el6.i686.rpm        | 134 kB     00:00     
(5/5): perl-DBI-1.609-4.el6.i686.rpm              | 705 kB     00:00     
-------------------------------------------------------------------------
总计                                      22 MB/s |  12 MB     00:00     
运行 rpm_check_debug 
执行事务测试
事务测试成功
执行事务
  正在升级   : mysql-libs-5.1.73-7.el6.i686                          1/6 
  正在安装   : perl-DBI-1.609-4.el6.i686                             2/6 
  正在安装   : perl-DBD-MySQL-4.013-3.el6.i686                       3/6 
  正在安装   : mysql-5.1.73-7.el6.i686                               4/6 
  正在安装   : mysql-server-5.1.73-7.el6.i686                        5/6 
  清理       : mysql-libs-5.1.73-5.el6_6.i686                        6/6 
  Verifying  : perl-DBD-MySQL-4.013-3.el6.i686                       1/6 
  Verifying  : mysql-server-5.1.73-7.el6.i686                        2/6 
  Verifying  : perl-DBI-1.609-4.el6.i686                             3/6 
  Verifying  : mysql-libs-5.1.73-7.el6.i686                          4/6 
  Verifying  : mysql-5.1.73-7.el6.i686                               5/6 
  Verifying  : mysql-libs-5.1.73-5.el6_6.i686                        6/6 

已安装:
  mysql-server.i686 0:5.1.73-7.el6                                       

作为依赖被安装:
  mysql.i686 0:5.1.73-7.el6        perl-DBD-MySQL.i686 0:4.013-3.el6     
  perl-DBI.i686 0:1.609-4.el6     

作为依赖被升级:
  mysql-libs.i686 0:5.1.73-7.el6                                         

完毕!

到这里就安装完成了

启动 mysql 服务

当我们第一次启动 mysql 数据库时,会进行一系列的初始化配置,输出如下内容

➜  ~ service mysqld start
Initializing MySQL database:  Installing MySQL system tables...
OK
Filling help tables...
OK

To start mysqld at boot time you have to copy
support-files/mysql.server to the right place for your system

PLEASE REMEMBER TO SET A PASSWORD FOR THE MySQL root USER !
To do so, start the server, then issue the following commands:

/usr/bin/mysqladmin -u root password 'new-password'
/usr/bin/mysqladmin -u root -h VM_176_3_centos password 'new-password'

Alternatively you can run:
/usr/bin/mysql_secure_installation

which will also give you the option of removing the test
databases and anonymous user created by default.  This is
strongly recommended for production servers.

See the manual for more instructions.

You can start the MySQL daemon with:
cd /usr ; /usr/bin/mysqld_safe &

You can test the MySQL daemon with mysql-test-run.pl
cd /usr/mysql-test ; perl mysql-test-run.pl

Please report any problems with the /usr/bin/mysqlbug script!

                                                           [  OK  ]
Starting mysqld:                                           [  OK  ]

这时, mysql 数据库就启动成功了,第二次启动数据库的时候 就不会再输出这么多内容了。

重启 mysql 数据库

重启数据库可以使用以下命令:

➜  ~ service mysqld restart
Stopping mysqld:                                           [  OK  ]
Starting mysqld:                                           [  OK  ]

设置开机自启

数据库启动成功后,设置 mysql 开机自启动

➜  ~ chkconfig mysqld on

可以通过 chkconfig --list | grep mysql 命令查看 mysql 数据库是否是开机自启动

➜  ~ chkconfig --list | grep mysql
mysqld             0:关闭    1:关闭    2:启用    3:启用    4:启用    5:启用    6:关闭

注意:chkconfig --list 可以查看服务器中 所有服务的自启动状态

设置 mysql 的密码

mysql数据库安装完以后只有一个root管理员账号,但是此时的root账号还没有为其设置密码,这时回头看一下在第一次启动mysql服务时,输出的一大段信息中,我们看到有这样一行信息 :

/usr/bin/mysqladmin -u root password 'new-password'  // 为root账号设置密码

所以我们可以通过 该命令来给我们的root账号设置密码(注意:这个root账号是mysql的root账号,非Linux的root账号)

➜  ~ mysqladmin -u root password '123456'  // 通过该命令给root账号设置密码为 123456

然后就可以通过 mysql -u root -p 命令来登录 mysql 数据库了

➜  ~ mysql -u root -p
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 4
Server version: 5.1.73 Source distribution

Copyright (c) 2000, 2013, 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              |
| test               |
+--------------------+
3 rows in set (0.00 sec)

mysql> exit;
Bye

查看安装好的 mysql-server 版本

使用rpm -qi mysql-server 命令查看安装好的 mysql-server 版本信息

➜  ~ rpm -qi mysql-server
Name        : mysql-server                 Relocations: (not relocatable)
Version     : 5.1.73                            Vendor: CentOS
Release     : 7.el6                         Build Date: 2016年05月11日 星期三 14时05分53秒
Install Date: 2016年10月08日 星期六 14时49分09秒      Build Host: worker1.bsys.centos.org
Group       : Applications/Databases        Source RPM: mysql-5.1.73-7.el6.src.rpm
Size        : 25688915                         License: GPLv2 with exceptions
Signature   : RSA/SHA1, 2016年05月12日 星期四 18时46分25秒, Key ID 0946fca2c105b9de
Packager    : CentOS BuildSystem <http://bugs.centos.org>
URL         : http://www.mysql.com
Summary     : The MySQL server and related files
Description :
MySQL is a multi-user, multi-threaded SQL database server. MySQL is a
client/server implementation consisting of a server daemon (mysqld)
and many different client programs and libraries. This package contains
the MySQL server and some accompanying files and directories.

卸载 mysql mysql-server

我们可以通过如下命令来查看我们的系统上是否 安装了 mysql

➜  ~ rpm -qa | grep mysql
mysql-5.1.73-7.el6.i686
mysql-libs-5.1.73-7.el6.i686
mysql-server-5.1.73-7.el6.i686

通过 rpm -e 命令 或者 rpm -e --nodeps 命令来卸载掉

➜  ~ rpm -qa | grep mysql
mysql-5.1.73-7.el6.i686
mysql-libs-5.1.73-7.el6.i686
mysql-server-5.1.73-7.el6.i686
➜  ~ rpm -e mysql  
error: Failed dependencies:
    mysql = 5.1.73-7.el6 is needed by (installed) mysql-server-5.1.73-7.el6.i686
➜  ~ rpm -e --nodeps mysql
➜  ~ rpm -qa | grep mysql 
mysql-libs-5.1.73-7.el6.i686
mysql-server-5.1.73-7.el6.i686

如上面的所示,当执行 rpm -e mysql 时会因为依赖关系 而出现错误,所以可以使用 rpm -e --nodeps mysql 来强制卸载,执行完之后 再查看安装的 mysql 发现少了 mysql-5.1.73-7.el6.i686
如果想全部卸载,再次执行

➜  ~ rpm -e --nodeps mysql-libs
➜  ~ rpm -e --nodeps mysql-server

即可。

mysql 的配置文件

mysql 的配置文件 保存在 /etc/my.cnf

我们可以看一下 内容:

➜  ~ cat /etc/my.cnf 
[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
user=mysql
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0

[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid

mysql 的数据库文件

mysql 的数据库文件存放路径为:/var/lib/mysql

➜  ~ ls -l /var/lib/mysql
总用量 20528
-rw-rw---- 1 mysql mysql 10485760 10月  8 15:11 ibdata1
-rw-rw---- 1 mysql mysql  5242880 10月  8 15:11 ib_logfile0
-rw-rw---- 1 mysql mysql  5242880 10月  8 14:50 ib_logfile1
drwx------ 2 mysql mysql     4096 10月  8 14:49 mysql
srwxrwxrwx 1 mysql mysql        0 10月  8 15:11 mysql.sock
drwx------ 2 mysql mysql     4096 10月  8 14:49 test

mysql 的日志输出文件

mysql数据库的日志输出存放位置在 /var/log 这个目录下

➜  ~ ls /var/log
anaconda.ifcfg.log    anaconda.yum.log  dmesg       messages    spooler
anaconda.log          audit             dmesg.old   mysqld.log  tallylog
anaconda.program.log  boot.log          dracut.log  ntpstats    wtmp
anaconda.storage.log  btmp              lastlog     prelink     yum.log
anaconda.syslog       cron              maillog     secure

其中mysqld.log 这个文件就是mysql数据库产生的一些日志信息,通过查看该日志文件,我们可以从中获得很多信息

查看监听端口

mysql 的服务端口为 3306 ,我们可以使用 netstat -anp 命令来查看系统是否在监听这个端口

➜  ~ netstat -anp
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address               Foreign Address             State       PID/Program name   
tcp        0      0 0.0.0.0:3306                0.0.0.0:*                   LISTEN      3513/mysqld  

设置 mysql 的远程访问

经过上面的设置后,还不能进行远程访问,连接的时候如下图所示:

解决办法

首先登录 mysql 数据库,然后使用命令grant all privileges on *.* to 'root'@'%' identified by '123456' with grant option; 配置远程访问:

➜  ~ mysql -u root -p
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 8
Server version: 5.1.73 Source distribution

Copyright (c) 2000, 2013, 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> grant all privileges on *.* to 'root'@'%' identified by '123456' with grant option;
Query OK, 0 rows affected (0.00 sec)

mysql> exit;
Bye
➜  ~ 

再次测试,就OK了。

至此,所有的安装配置都完成了,如有纰漏,请及时告知,谢谢~~