在CentOS上安装MySQL,参考网上的一些文章,整理了一下,希望可以帮到需要的朋友。
首先我们先查看一下自己的系统是否已经安装了MySQL,因为有一些Linux发行版集成了MySQL数据库,我们可以通过rpm -qa命令来查看系统是否已经安装了MySQL数据库。
[root@localhost ~]# rpm -qa | grep mysql //查看当前系统是否已安装了MySQL数据库,如果已经安装,还可以看到当前数据库的版本。

rpm命令结果

如果已经安装了MySQL,那我们可以通过rpm -e命令或者rpm -e --nodeps 命令来卸载
[root@localhost ~]# rpm -e mysql //普通删除模式
[root@localhost ~]# rpm -e --nodeps mysql //如果在用上面的命令删除是提示有依赖文件,则可以用该命令彻底删除
在删除完以后,可以通过rpm -qa | grep mysql命令来查看MySQL是否已经卸载成功

通过yum安装MySQL

  1. 查看yum上MySQL的版本
    使用 yum list | grep mysql 命令来查看yum上提供的MySQL版本:
    1.png-39.7kB

  2. 安装MySQL
    上面找到好多MySQL相关的包,该安装哪个?大概了解一下这些包的都是什么的。

  • mysql-server ----MySQL服务器,需要安装,除非你只想连接运行在其他机器上的MySQL数据库。
  • mysql-client/mysql ----MySQL客户端程序,用于连接并操作MySQL服务器
  • mysql-devel ---- 库和包含文件,如果你想要编译其他MySQL客户端,则需要该rpm包
  • mysql-shared ---- 该软件包包含某些语言和应用程序需要动态装载的共享库
  • mysql-bench ---- MySQL数据库服务器的基准和性能测试工具

使用命令 yum install -y mysql-server mysql mysql-devel 安装MySQL,运行该命令后,需要做的就是等待和确认安装,之后MySQL就安装好了。
2.png-20.5kB
等待安装完成后,可以使用 rpm -qi mysql-server 命令查看安装的MySQL-server的版本等相关信息。
3.png-24kB

启动mysql

安装完MySQL后,可以通过 service mysqld start 命令来启动MySQL服务,第一次启动mysql服务时,mysql服务器首先会进行初始化配置,如:

[root@localhost ~]# 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 localhost.localdomain 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  ]
[root@localhost ~]# 

从提示信息中我们可以看到,可以使用/usr/bin/mysqladmin -u root password 'new-password' 为MySQL的root账号设置密码。

MySQL安装好并且可以启动了,但是使用chkconfig --list | grep mysql命令可以查看到mysql服务并没有开机自动启动,所以我们每次重启后都必须手动启动mysql服务。
检出是否开机启动服务.png-2.5kB
我们可以使用chkconfig mysql on命令来设置mysql服务开机自启动
设置开机启动.png-4.5kB

连接mysql服务器

启动mysql服务后,就可以使用mysql -u root -p 命令来连接mysql服务器了
连接mysql.png-17.5kB

远程访问MySQL数据库

成功安装和启动MySQL并可以在本地连接数据库后,我们发现此时远程连接数据库时,无法连接成功。此时我们要做的是开放系统的3306端口(MySQL默认的访问端口),并且设置MySQL允许远程访问。

开放3306端口

使用命令 service iptables status 可以查看防火墙状态和已开启的端口。
其实在实验环境中我们可以直接关闭防火墙
service iptables stop ---- 停止防火墙(重启后失效)
chkconfig iptables off ---- 永久关闭防火墙

还是说怎么开放端口吧!

编辑防火墙配置件 /etc/sysconfig/iptables,我们先看下这个文件的内容
防火墙配置文件.png-13.4kB
可以看到22端口是开放的,照猫画虎,添加3306端口
-A INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT
保存修改,并使用命令 service iptables restart 重启防火墙使修改生效
现在查看防火墙状态,发现3306端口已打开
iptables_status.png-34.9kB

允许MySQL远程登录

  • 允许MySQL的root用户使用特定的IP进行远程登录,并具有所有库的操作权限,具体操作如下:

在本机使用root用户登录MySQL:
mysql -u root -p 回车后会提示输入密码,成功登录后进行授权操作,如:
GRANT ALL PRIVILEGES ON *.* TO root@"111.111.111.111" IDENTIFIED BY "youpassword" WITH GRANT OPTION;
刷新授权表:
FLUSH PRIVILEGES

  • 也可以允许root用户在任何地方进行登录,并具有所有操作所有库的权限:
    只要把上面的特定IP换成%就OK了
    GRANT ALL PRIVILEGES ON *.* TO root@'%' IDENTIFIED BY "youpassword" WITH GRANT OPTION;

相关的设置还有很多,比如只允许特定用户登录后对特定的库进行特定的操作,这些大家可以自行搜素,这里就不做详细描述了,不然就没完没了了。

mysql数据库的主要配置文件

  1. /etc/my.cnf -- 是mysql的主配置文件
  2. /var/lib/mysql -- mysql数据库的数据库文件存放位置
  3. /var/log -- mysql数据库的日志存放位置

CentOS下mysql的安装和一些简单的配置就说到这儿,一些具体的配置细节以后有时间再写。