1.MySQL安装

一、rpm安装

(1)首先下载MySQL的rpm安装包,如下:
客户端:http://dev.mysql.com/get/Downloads/MySQL-5.6/MySQL-client-5.6.32-1.linux_glibc2.5.x86_64.rpm
服务端:http://dev.mysql.com/get/Downloads/MySQL-5.6/MySQL-server-5.6.32-1.linux_glibc2.5.x86_64.rpm
(2)下载完成之后,上传至服务器的指定软件目录下,比如:/home/software;
(3)首先查看主机上是否已经安装过mysql,使用如下命令查看:
(4)如果存在,需要先卸载原有mysql,使用如下命令:

[root@WB-BLOG ~]# rpm -qa | grep -i mysql*

[root@WB-BLOG ~]# rpm -e –nodeps mysql-libs

注:–nodeps表示无依赖卸载mysql-libs,防止卸载依赖的库而导致后续安装出错

(5)添加mysql用户,使用如下命令:

[root@WB-BLOG software]# useradd mysql -s /sbin/nologin -M

(6)卸载完成之后,开始安装,首先安装服务端,然后再安装客户端:

服务端安装,使用如下命令:

[root@WB-BLOG ~]# rpm -ivh MySQL-server-5.6.32-1.linux_glibc2.5.x86_64.rpm

注:上述命令执行完毕之后,会自动初始化数据库,数据目录默认在/var/lib/mysql下,查看控制台实时日志中是否有ERROR信息,如果无ERROR信息,表示服务端安装完成,Warning信息可以忽略。安装完成之后,会在/root/.mysql_secret文件中生成mysql的默认密码,可以通过cat命令查看即可:cat /root/.mysql_secret

客户端安装,使用如下命令:

[root@WB-BLOG ~]# rpm -ivh MySQL-client-5.6.32-1.linux_glibc2.5.x86_64.rpm

注:安装客户端的目的是可以再服务器上使用到mysql的一些客户端连接命令,比如:mysql命令,如果确定不在服务器上操作mysql,可以不安装此客户端。

(7)安装完成之后,添加mysql的配置文件my.cnf,对于mysql,改配置文件有一个加载顺序,mysql启动的时候会按照这个顺序去加载,顺序为:/etc/my.cnf,basedir/my.cnf,datadir/my.cnf,~/.my.cnf

编辑/etc/my.cnf配置文件,写入如下内容:

[mysql]

socket = /tmp/mysql.sock

[mysqld]

port = 3306

socket = /tmp/mysql.sock

character-set-server = UTF8

innodb_file_per_table = 1

innodb_flush_log_at_trx_commit = 2

(8)编辑完配置文件之后,保存。然后启动mysql数据库,如下:

[root@WB-BLOG ~]# service mysql start

(9)启动之后,使用如下mysql命令行工具登陆mysql,默认密码为/root/.mysql_secret中生成的,可以使用如下方式登陆:

[root@WB-BLOG mysql]# mysql -uroot -pBcbwbAXM_kUL8lpE -h127.0.0.1 -P3306

(10)修改密码:

修改密码方法1:使用mysqladmin命令修改,如下

[root@WB-BLOG mysql]# mysqladmin -uroot -pBcbwbAXM_kUL8lpE password ‘root’

注:修改密码的时候需要使用password函数,而且密码尽可能设置复杂一些;

修改密码方法2:登陆MySQL,然后使用使用password函数更新mysql.user表:

mysql> select user,host,password from mysql.user; #查看当前已有用户及权限

mysql> update user set password=password(‘password’) where user=’root’;

mysql> flush privileges;     #刷新权限,让mysql重读权限表

(11)删除无用的用户和数据库,并且修改远程连接权限:

mysql> drop user ‘root’@’::1′;

mysql> drop database test;

#该数据库在初始化的时候是默认添加的,无用,可删除

至此,rpm方式的MySQL安装及初始化完毕。

二、通用二进制安装

(1)首先下载通用二进制安装包,下载地址为:https://dev.mysql.com/get/Downloads/MySQL-5.6/mysql-5.6.40-linux-glibc2.12-x86_64.tar.gz

(2)使用yum命令安装mysql的依赖库,mysql主要有如下两个依赖库:

[root@WB-BLOG mysql]# yum install -y ncurses-devel libaio-devel

注:如果没有网络的情况下,使用yum安装会提示错误。此时可以下载依赖库所对应的rpm包上传至服务器完成安装;或者还可以使用iso镜像文件搭建私有的yum源,后面写文章介绍如何在局域网或者本地搭建及配置私有得的yum源。

(3)安装完成之后,添加mysql用户:

[root@WB-BLOG ~]# useradd mysql -s /sbin/nologin -M

(4)解压mysql通用二进制安装包,并重命名目录:

[root@WB-BLOG home]# tar xf mysql-5.6.40-linux-glibc2.12-x86_64.tar.gz -C /usr/local/

[root@WB-BLOG home]# cd /usr/local/

[root@WB-BLOG local]# mv mysql-5.6.40-linux-glibc2.12-x86_64.tar.gz/ mysql-5.6.40

(5)创建mysql的数据目录,并授权mysql用户。注意,数据目录最好别放在系统盘上,如果数据量后期比较大的话,最好事先选择一个空间比较大的数据盘作为mysql的存储目录,方便后期数据备份及迁移

[root@WB-BLOG local]# mkdir -pv /mysql_data/

[root@WB-BLOG local]# chown -R mysql.mysql /mysql_data

(6)编辑mysql的配置文件my.cnf,可以从mysql解压目录中拷贝一份到/etc/my.cnf下,并修改,在配置文件中指定mysql的一些配置参数,如下:

[mysql]

socket = /mysql_data/mysql.sock

[mysqld]

basedir = /usr/local/mysql-5.6.40

datadir = /mysql_data/

character-set-server = UTF8

port = 3306

server_id = 3   #后期做mysql主从使用,可暂不配置

socket = /mysql_data/mysql.sock

innodb_file_per_table = 1

innodb_flush_log_at_trx_commit = 2

(7)初始化mysql数据库:

[root@WB-BLOG local]# cd /usr/local/mysql-5.6.39/

[root@WB-BLOG mysql-5.6.39]# ./scripts/mysql_install_db –basedir=/usr/local/mysql-5.6.39 –datadir=/mysql_data –user=mysql

注意:看到有如下所示的两个单行的OK字样,表示初始化成功.

Installing MySQL system tables…

OK

Filling help tables…

OK

(8)拷贝mysql的启动脚本文件至/etc/init.d/目录下,并重命名为mysqld,授予其可执行权限:

[root@WB-BLOG mysql-5.6.39]# cp /usr/local/mysql-5.6.40/support-files/mysql.server /etc/init.d/mysqld

[root@WB-BLOG mysql-5.6.39]# chmod +x /etc/init.d/mysqld

(9)修改mysql启动脚本中的默认安装路径:

[root@WB-BLOG mysql-5.6.39]# sed -i “s#/usr/local/mysql#/usr/local/mysql-5.6.40#g” /etc/init.d/mysqld

(10)将mysqld添加至系统服务,并设置自动启动:

[root@WB-BLOG mysql-5.6.39]# chkconfig –level 2345 mysqld on  #配置

[root@WB-BLOG mysql-5.6.39]# chkconfig –list mysqld   #查看

(11)使用跳过授权表方式启动mysql数据库,并登陆mysql,设置密码,然后完成mysql使用前的初始化准备工作:

[root@WB-BLOG mysql-5.6.39]# /usr/local/mysql-5.6.39/bin/mysqld_safe –defaults-file=/etc/my.cnf –skip-grant-tables &

[root@WB-BLOG mysql-5.6.39]# mysql -uroot -p      #然后两次回车

mysql> update mysql.user set password = password(‘root’) where user = ‘root’;  #修改密码:

mysql> delete from mysql.user where host = ‘::1’; #删除多余用户

mysql> flush privileges;   #重读权限表

mysql> drop database test;   #清理多余数据库

(12)退出mysql命令行,使用mysqladmin命令关闭数据库,并重新启动,使数据库再次使用权限认证:

mysql> \q

[root@WB-BLOG mysql-5.6.39]# ./bin/mysqladmin -uroot -proot shutdown  #需要使用刚才修改的密码

[root@WB-BLOG mysql-5.6.39]# service mysqld start

(13)配置mysql的环境变量,方便使用客户端连接:

[root@WB-BLOG mysql-5.6.39]# vim /etc/profile

添加如下内容:

MYSQL_HOME=/usr/local/mysql-5.6.39

PATH=$PATH:$JAVA_HOME/bin:$MYSQL_HOME/bin

[root@WB-BLOG mysql-5.6.39]# source /etc/profile    #使配置文件生效

至此,通用二进制方式的mysql安装及初始化完毕。

三、源码编译安装mysql

(1)源码安装需要使用到cmake,首先下载cmake和mysql的源码,上传至服务器:

cmake下载地址:https://cmake.org/files/v2.8/cmake-2.8.8.tar.gz

mysql源码下载地址:https://dev.mysql.com/get/Downloads/MySQL-5.6/mysql-5.6.35.tar.gz

(2)使用yum方式安装gcc和gcc-c++,否则编译cmake和mysql的时候会报错,如下:

[root@WB-BLOG mysql-5.6.39]# yum install -y gcc gcc-c++

(3)解压cmake,并进入cmake软件目录:

[root@WB-BLOG software]# tar xf cmake-2.8.8.tar.gz

[root@WB-BLOG software]# cd cmake-2.8.8

[root@WB-BLOG cmake-2.8.8]# ./configure

[root@WB-BLOG cmake-2.8.8]# gmake

[root@WB-BLOG cmake-2.8.8]# gmake install

(4)安装mysql的依赖库:ncurses-devel

[root@WB-BLOG software]# yum install -y ncurses-devel

(5)解压mysql:

[root@WB-BLOG software]# tar xf mysql-5.6.35.tar.gz && cd mysql-5.6.35

[root@WB-BLOG software]# mv mysql-5.6.35 /usr/local

(6)创建mysql组和mysql用户:

[root@WB-BLOG mysql-5.6.35]# groupadd mysql

[root@WB-BLOG mysql-5.6.35]# useradd mysql -s /sbin/nologin -M -g mysql

(7)创建mysql的数据目录并授权:

[root@WB-BLOG mysql-5.6.35]# mkdir -pv /mysql_data/

[root@WB-BLOG mysql-5.6.35]# chown -R mysql.mysql /mysql_data/

(8)使用cmake编译mysql,如下的编译选项为最基本的,更多选项可以参考官方文档:

[root@WB-BLOG mysql-5.6.35]# cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql-5.6.35 -DMYSQL_DATADIR=/mysql_data/ -DMYSQL_UNIX_ADDR=/mysql_data/mysql.sock -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DEXTRA_CHARSETS=gbk,gb2312,utf8,ascii -DENABLED_LOCAL_INFILE=ON -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_FEDERATED_STORAGE_ENGINE=1 -DWITH_BLACKHOLE_STORAGE_ENGINE=1 -DWITHOUT_EXAMPLE_STORAGE_ENGINE=1 -DWITHOUT_PARTITION_STORAGE_ENGINE=0 -DWITH_FAST_MUTEXES=1 -DWITH_ZLIB=bundled -DENABLED_LOCAL_INFILE=1 -DWITH_READLINE=1 -DWITH_EMBEDDED_SERVER=1 -DWITH_DEBUG=0 -DWITH_PARTITION_STORAGE_ENGINE=1

…等待编译…

[root@WB-BLOG mysql-5.6.35]# make

[root@WB-BLOG mysql-5.6.35]# make install

(9)如果上述过程正常结束,表示mysql编译安装成功,否则停下来检查编译过程中的错误,通常编译期的错误多数为缺少类库导致,可安装相关类库后重新编译。然后编辑mysql的配置文件my.cnf,写入如下内容:

[mysql]
   socket = /mysql_data/mysql.sock
[mysqld]
   character-set-server = UTF8
   basedir = /usr/local/mysql-5.6.35
   datadir = /mysql_data
   port = 3306
   server_id = 3
   socket = /mysql_data/mysql.sock
   innodb_file_per_table = 1
   skip-name-resolve
   innodb_flush_log_at_trx_commit = 2

(10)初始化mysql数据库:

[root@WB-BLOG mysql-5.6.35]# cd /usr/local/mysql-5.6.35/

[root@WB-BLOG mysql-5.6.35]# ./scripts/mysql_install_db –basedir=/usr/local/mysql-5.6.35 –datadir=/mysql_data/ –user=mysql

(11)看到如下的字样,表示mysql数据库初始化成功:

Installing MySQL system tables…

OK

Filling help tables…

OK

(12)拷贝启动脚本到/etc/init.d目录下:

[root@WB-BLOG mysql-5.6.35]# cp /usr/local/mysql-5.6.35/support-files/mysql.server.sh /etc/init.d/mysqld

[root@WB-BLOG mysql-5.6.35]# vim /etc/init.d/mysqld  #编辑脚本,修改basedir和datadir目录为安装的目录

找到basedir和datadir,然后修改为如下内容,并保存退出:

basedir=/usr/local/mysql-5.6.35

datadir=/mysql_data/

(13)授权脚本的执行权限,使用跳过授权表的方式启动,然后修改密码,删除多余的用户和数据库,并配置环境变量,具体步骤同“通用二进制安装中的(11),(12),(13)”,此处后续步骤略。

至此,源码编译安装mysql完毕。

注:文章属原创,如果转发,请标注出处。

发表评论

电子邮件地址不会被公开。