MySQL(一)——在Linux下安装MySQL

一、MySQL在Linux下的安装

时常接触Linux的同学可能知道,Linux下的安装包一般包含有三种不同的格式:yum、tar.gz、rmp,这三者的大致区别如下

tar.gz:tar.gz就是一个压缩包,类似于win上面的zip等文件

rpm:rpm是一种用来打包软件的的文件格式,他是一种特定的专门用来进行软件的安装、卸载等操作的格式

yum:yum可以理解为一个专门用来管理软件的体系,有点类似于Java中的maven,可以管理软件之间相互依赖的问题,他和前两种的不同之处就是,他的安装不是简单的使用tar和rmp命令行就可完成对某一个软件的安装,而是通过配置yum文件实现对软件的一个自动下载、安装以及缺失依赖的自动过程。

下面正式开始在centos中安装MySQL

1.我们选择rmp格式的MySQL软件包进行安装,类似于window上的MySQL和SQLyog图像化界面,在Linux下也有MySQL对应的server端和client端。到官网把这两端的rmp包下载下来https://downloads.mysql.com/archives/community/ 并上传到Linux上,我的放到了/usr/local/app/mysql路径下(app和mysql这两个目录是我自己创建的)。

MySQL(一)——在Linux下安装MySQL_第1张图片

2.在安装MySQL之前需要先卸载掉centos自带的MySQL,否则会冲突导致安装失败

   1)输入rpm -qa|grep mysql,查看centos自带的MySQL。可以看到确实有自带的MySQL

   2)通过命令rpm -e --nodeps 软件名,将自带的MySQL卸载

MySQL(一)——在Linux下安装MySQL_第2张图片

3.安装MySQL的服务器端和客户端:rpm -ivh 软件名

MySQL(一)——在Linux下安装MySQL_第3张图片

4.启动MySQL服务:service mysql start

5.将MySQL添加到系统服务中去并设置开机启动(类比一下windows下的场景)

    添加到系统服务中:chkconfig --add mysql

    开机后自动启动:chkconfig mysql on

MySQL(一)——在Linux下安装MySQL_第4张图片

我们可以通过命令ntsysv来看一下是否设置成功,输入ntsysv回车后出现如下界面,前面有*号的表示是开机自启服务,没有*的就不会开机自启。我们看到MySQL前面有*号,说明设置成功了。按tab键切到ok按钮上,回车退出界面。

MySQL(一)——在Linux下安装MySQL_第5张图片

6.登陆MySQL

现在我们在控制台直接输入mysql就可以登录MySQL数据库了(不需要密码),如下图:

MySQL(一)——在Linux下安装MySQL_第6张图片

这是因为我们在安装MySQL服务端的时候,系统本身就没有让我们设置root用户对应的密码,所以就出现了像上面那样,即使我们直接输入mysql,不输入密码也可以登陆mysql的情况。因此我们必须重置密码,否则数据库的很多操作我们是不能使用的。

7.修改密码:修改的方式有两种,一种是在mysql命令下修,一种是在linux命令下修改,两者都可以用,看个人喜好:

    mysql命令下:set password = password('你的新密码')

    Linux命令下:/usr/bin/mysqladmin -u root password '你的新密码'   

MySQL(一)——在Linux下安装MySQL_第7张图片

8.开启MySQL远程登陆权限

默认情况下为了安全起见,MySQL不支持远程登陆,所以需要手动设置开启MySQL远程登录的权限。登陆MySQL后输入如下命令:

    grant all privileges on *.* to 'root' @'%' identified by 'root';

    (上面命令的形式:grant all privileges on *.* to 'root'@'电脑的ip地址' identified by '密码';)

    flush privileges;

MySQL(一)——在Linux下安装MySQL_第8张图片

9.开放Linux的3306端口,输入如下命令:

    /sbin/iptables -I INPUT -p tcp --dport 3306 -j ACCEPT

    /etc/rc.d/init.d/iptables save     //将修改永久保存到防火墙中

MySQL(一)——在Linux下安装MySQL_第9张图片

二、MySQL的一些核心目录

在做数据库优化等工作的时候,我们会与很多各种MySQL的目录打交道,今天我们就先熟悉一下几个比较常用到的。

先通过ps -ef|grep mysql命令查看一下数据库存放目录:重点关注如下两个

datadir=/var/lib/mysql                             //数据存放目录

pid-file=/var/lib/mysql/centos6.pid         //pid文件存放目录

通过上面的两个路径我们可以看到,pid文件就存放在/var/lib/mysql目录下,我们进入到/var/lib/mysql目录看一下里面都有那些文件:用红框圈出几个比较重要的文件,其中test是MySQL在Linux环境下自带的一个测试用的数据库,mysql.sock是与通信相关的东西

MySQL(一)——在Linux下安装MySQL_第10张图片

MySQL的一些核心目录总结:

    1. /var/lib/mysql             //MySQL安装与存放目录

    2. /usr/bin                      //可执行命令目录(如mysqladmin、mysqldump等命令)

    3. /etc/init.d/mysql         //mysql的启停脚本存放目录

    4. /usr/share/mysql        //存放MySQL相关配置文件的目录

我们进入 /usr/share/mysql目录看一下,发现有很多配置文件,我们重点看一下红框中的四个,分别对应部署不同规模服务器时所对应的配置文件。

MySQL(一)——在Linux下安装MySQL_第11张图片

my-huge.cnf              //高端服务器配置(1~2G内存)

my-large.cnf              //中等规模

my-medium.cnf         //一般规模

my-small.cnf             //较小规模

但是以上的这四个配置,MySQL默认是识别不出来了,默认只能识别/etc/my.cnf这个配置文件。所以要想识别出上面四个中的某个配置文件,必须把它复制一份到/etc/路径下,把原来的my.cnf替换掉。比如我们想让my-huge.cnf 这个配置文件生效,那么就需要通过如下指令复制一份my-huge.cnf文件到/etc路径下,把my.cnf替换掉cp /usr/share/mysql/my-huge.cnf /etc/my.cnf (注意这个指令已经将my-huge.cnf复制到了/etc/目录下,并且重命名为my.cnf)

另外需要注意的是,MySQL5.5默认的配置文件是/etc/my.cnf,而MySQL5.6默认的默认的配置文件是/etc/my-defaut.cnf,二者名字略有差异

三、编码问题

首先我们登陆MySQL,通过sql命令show variables like '%char%';看一下编码。可以看到下面有两项是拉丁编码,我们需要把他改为utf8

MySQL(一)——在Linux下安装MySQL_第12张图片

那么如何设置编码呢?

当然是修改配置文件,这就需要用到我们在上面提到my.cnf配置文件了。为了操作方便通过ctrl+shift+F1快捷键把centos切换到图形界面进入到etc文件夹,找到my.cnf(可以通过ctrl+f搜索)并打开my.cnf,我们需要在如下三个模块中追加内容:

[mysql]

default-character-set=utf8

[client]

default-character-set=utf8

[mysqld]

character_set_server=utf8

character_set_client=utf8

collation_server=utf8_general_ci

MySQL(一)——在Linux下安装MySQL_第13张图片

MySQL(一)——在Linux下安装MySQL_第14张图片

上面注意下划线_和中线-的区别。修改完成后我们通过service mysql restart重启MySQL,然后登陆MySQL,再通过show variables like '%char%';查看一下修改后的编码,可以看到刚才的两个拉丁编码已经被我们修改为utf8编码了。

MySQL(一)——在Linux下安装MySQL_第15张图片

需要注意的一点是,修改编码只对之后创建的数据库生效,对修改之前已经存在的数据库不会生效。比如我们在修改编码前有A、B两个数据库,修改编码后又创建了C数据库,那么A、B库还是用原来的那套编码,C库使用最新的编码。

最后的最后,再说两个在MySQL中常用的清屏命令:ctrl+L(这个是Linux自带的)和system clear

谢谢大家的支持。

 

 

你可能感兴趣的:(Linux,MySQL)