时常接触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这两个目录是我自己创建的)。
2.在安装MySQL之前需要先卸载掉centos自带的MySQL,否则会冲突导致安装失败
1)输入rpm -qa|grep mysql,查看centos自带的MySQL。可以看到确实有自带的MySQL
2)通过命令rpm -e --nodeps 软件名,将自带的MySQL卸载
3.安装MySQL的服务器端和客户端:rpm -ivh 软件名
4.启动MySQL服务:service mysql start
5.将MySQL添加到系统服务中去并设置开机启动(类比一下windows下的场景)
添加到系统服务中:chkconfig --add mysql
开机后自动启动:chkconfig mysql on
我们可以通过命令ntsysv来看一下是否设置成功,输入ntsysv回车后出现如下界面,前面有*号的表示是开机自启服务,没有*的就不会开机自启。我们看到MySQL前面有*号,说明设置成功了。按tab键切到ok按钮上,回车退出界面。
6.登陆MySQL
现在我们在控制台直接输入mysql就可以登录MySQL数据库了(不需要密码),如下图:
这是因为我们在安装MySQL服务端的时候,系统本身就没有让我们设置root用户对应的密码,所以就出现了像上面那样,即使我们直接输入mysql,不输入密码也可以登陆mysql的情况。因此我们必须重置密码,否则数据库的很多操作我们是不能使用的。
7.修改密码:修改的方式有两种,一种是在mysql命令下修,一种是在linux命令下修改,两者都可以用,看个人喜好:
mysql命令下:set password = password('你的新密码')
Linux命令下:/usr/bin/mysqladmin -u root password '你的新密码'
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;
9.开放Linux的3306端口,输入如下命令:
/sbin/iptables -I INPUT -p tcp --dport 3306 -j ACCEPT
/etc/rc.d/init.d/iptables save //将修改永久保存到防火墙中
在做数据库优化等工作的时候,我们会与很多各种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的一些核心目录总结:
1. /var/lib/mysql //MySQL安装与存放目录
2. /usr/bin //可执行命令目录(如mysqladmin、mysqldump等命令)
3. /etc/init.d/mysql //mysql的启停脚本存放目录
4. /usr/share/mysql //存放MySQL相关配置文件的目录
我们进入 /usr/share/mysql目录看一下,发现有很多配置文件,我们重点看一下红框中的四个,分别对应部署不同规模服务器时所对应的配置文件。
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
那么如何设置编码呢?
当然是修改配置文件,这就需要用到我们在上面提到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
上面注意下划线_和中线-的区别。修改完成后我们通过service mysql restart重启MySQL,然后登陆MySQL,再通过show variables like '%char%';查看一下修改后的编码,可以看到刚才的两个拉丁编码已经被我们修改为utf8编码了。
需要注意的一点是,修改编码只对之后创建的数据库生效,对修改之前已经存在的数据库不会生效。比如我们在修改编码前有A、B两个数据库,修改编码后又创建了C数据库,那么A、B库还是用原来的那套编码,C库使用最新的编码。
最后的最后,再说两个在MySQL中常用的清屏命令:ctrl+L(这个是Linux自带的)和system clear
谢谢大家的支持。