一、使用 Linux RPM 方式安装 MySQL
说明:使用 Linux RPM 方式安装 MySQL必须使用root用户!
1.1 查看之前是否安装MySQL
[hadoop@hadoop116 ~]$ rpm -qa | grep mysql
1.2 如果发现之前有安装过或者系统自带的MySQL版本,进行卸载
[hadoop@hadoop01 ~]$ rpm -e --nodeps mysql-libs-5.1.73-5.el6_6.x86_64
1.3 去 MySQL官网 下载对应版本的rpm安装包:
安装包:mysql-community-client-5.6.24-3.el6.x86_64.rpm 和 mysql-community-server-5.6.24-3.el6.x86_64.rpm
依赖包:mysql-community-common-5.6.24-3.el6.x86_64.rpm 和 mysql-community-libs-5.6.24-3.el6.x86_64.rpm
1.4 安装MySQL所需依赖
[root@hadoop116 ~]$ yum -y install perl-DBI
[root@hadoop116 ~]$ rpm -ivh /home/hadoop/mysql-community-common-5.6.24-3.el6.x86_64.rpm
[root@hadoop116 ~]$ rpm -ivh /home/hadoop/mysql-community-libs-5.6.24-3.el6.x86_64.rpm
1.5 安装MySQL客户端
[root@hadoop116 ~]$ rpm -ivh /home/hadoop/mysql-community-client-5.6.24-3.el6.x86_64.rpm
1.6 安装MySQL服务器
[root@hadoop116 ~]$ rpm -ivh /home/hadoop/mysql-community-server-5.6.24-3.el6.x86_64.rpm
1.7 启动mysql
[root@hadoop116 ~]$ service mysqld start
1.8 使用管理员修改root用户初始密码
[root@hadoop116 ~]$ /usr/bin/mysqladmin -u root password 'root'
1.9 登录MySQL客户端
[root@hadoop116 ~]$ mysql -uroot -proot
1.10 修改密码及添加远程访问权限
mysql>SET PASSWORD=PASSWORD('root'); (可不做)
mysql>GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'root' WITH GRANT OPTION;
mysql>FLUSH PRIVILEGES;
命令解释:
grant 权限 1,权限 2,…权限 n on 数据库名称.表名称 to 用户名@用户地址 identified by‘连接口令’ ;
注意: 权限1,权限 2,…权限 n 代表 select, insert, update, delete, create, drop, index, alter, grant, references, reload, shutdown, process, file 等 14 个权限。当权限 1,权限 2,…权限 n 被 all privileges 或者 all 代替,表示赋予用户全部权限。当数据库名称.表名称被*.*代替,表示赋予用户操作服务器上所有数据库所有表的权限。
用户地址可以是 localhost,也可以是 ip 地址、机器名字、域名。也可以用’%’地址连接。
1.11 修改密码及添加远程访问权限
二、使用 tar.gz 包方式安装MySQL
说明:本次mysql的安装和初始化使用的是hadoop用户,即将MySQL安装在hadoop普通用户下!
2.1 去 MySQL官网 下载对应版本的 tar.gz 安装包
2.2 将 tar.gz 安装包上传到linux系统中,并进行解压
[hadoop@hadoop116 ~]$ tar -zxvf mysql-5.7.22-linux-glibc2.12-x86_64.tar.gz -C /home/hadoop/core/
2.3 创建数据库数据文件目录data-dir和mysql错误日志log-error目录
[hadoop@hadoop116 ~]$ mkdir -p /home/hadoop/data/mysql && mkdir -p /home/hadoop/logs/mysql
2.4 更改解压缩后的mysql文件夹名称
[hadoop@hadoop116 ~]$ cd /home/hadoop/core && mv mysql-5.7.22-linux-glibc2.12-x86_64/ mysql-5.7.22
2.5 修改mysql配置文件mysql.server中的以下内容
[hadoop@hadoop116 ~]$ vim /home/hadoop/core/mysql-5.7.22/support-files/mysql.server
# The following variables are only set for letting mysql.server find things.
# Set some defaults
mysqld_pid_file_path=
if test -z "$basedir"
then
basedir=/home/hadoop/core/mysql-5.7.22 #修改为mysql的解压目录
bindir=/home/hadoop/core/mysql-5.7.22/bin #修改为mysql解压目录的bin目录
if test -z "$datadir"
then
datadir=/home/hadoop/data/mysql #修改为mysql的数据存储目录
fi
sbindir=/home/hadoop/core/mysql-5.7.22/bin #修改为mysql解压目录的bin目录
libexecdir=/home/hadoop/core/mysql-5.7.22/bin #修改为mysql解压目录的bin目录
else
bindir="$basedir/bin"
if test -z "$datadir"
then
datadir="$basedir/data"
fi
sbindir="$basedir/sbin"
libexecdir="$basedir/libexec"
fi
2.6 将mysql.server文件复制到/etc/init.d/系统目录下,并修改该文件的执行权限
[hadoop@hadoop116 ~]$ sudo cp /home/hadoop/core/mysql-5.7.22/support-files/mysql.server /etc/init.d/mysqld
[hadoop@hadoop116 ~]$ sudo chmod 755 /etc/init.d/mysqld && sudo chown hadoop:hadoop /etc/init.d/mysqld
2.7 配置修改/etc/my.cnf文件
[hadoop@hadoop116 ~]$ sudo vim /etc/my.cnf
[client]
socket=/home/hadoop/data/mysql/mysql.sock
default-character-set=utf8
[mysqld]
skip-grant-tables
skip-name-resolve
port=3306
basedir=/home/hadoop/core/mysql-5.7.22
datadir=/home/hadoop/data/mysql
socket=/home/hadoop/data/mysql/mysql.sock
user=hadoop
character_set_server=utf8
init_connect='SET NAMES utf8'
symbolic-links=0
log-error=/home/hadoop/logs/mysql/mysqld.log
pid-file=/home/hadoop/data/mysql/mysqld/mysqld.pid
transaction-isolation = READ-COMMITTED
key_buffer_size = 32M
max_allowed_packet = 32M
thread_stack = 256K
thread_cache_size = 64
query_cache_limit = 8M
query_cache_size = 64M
query_cache_type = 1
character_set_server = utf8
max_connections = 1000
log_bin=/home/hadoop/logs/mysql/mysql_binary_log
server_id=1
binlog_format = mixed
read_buffer_size = 2M
read_rnd_buffer_size = 16M
sort_buffer_size = 8M
join_buffer_size = 8M
innodb_file_per_table = 1
innodb_flush_log_at_trx_commit = 2
innodb_log_buffer_size = 64M
innodb_buffer_pool_size = 4G
innodb_thread_concurrency = 8
innodb_flush_method = O_DIRECT
innodb_log_file_size = 512M
[mysqld_safe]
log-error=/home/hadoop/logs/mysql/mysqld.log
pid-file=/home/hadoop/data/mysql/mysqld/mysqld.pid
!includedir /etc/my.cnf.d
2.8 添加配置hadoop用户下的mysql环境变量
[hadoop@hadoop116 ~]$ vim /home/hadoop/.bashrc
export MYSQL_HOME=/home/hadoop/core/mysql-5.7.22
export PATH=$PATH:$MYSQL_HOME/bin
2.9 刷新hadoop用户环境变量配置文件
[hadoop@hadoop116 ~]$ source /home/hadoop/.bashrc
2.10 对mysql进行初始化
2.10.1 服务有可能启动中,需要关闭,查看没有启动可以不执行kill命令
[hadoop@hadoop116 ~]$ pid=`ps ax | grep port=3306 | grep -v grep | awk '{print $1}'`
[hadoop@hadoop116 ~]$ kill -9 $pid
[hadoop@hadoop116 ~]$ pid_mysqld_safe=`ps ax | grep mysqld_safe | grep -v grep | awk '{print $1}'`
[hadoop@hadoop116 ~]$ kill -9 $pid_mysqld_safe
2.10.2 mysql开始进行初始化
[hadoop@hadoop116 ~]$ cd /home/hadoop/core/mysql-5.7.22/bin
[hadoop@hadoop116 ~]$ sudo mkdir -p /etc/my.cnf.d (下一步初始化需要这个目录,但是不会自动创建,需要手动创建)
[hadoop@hadoop116 ~]$ ./mysqld --user=hadoop --basedir=/home/hadoop/core/mysql-5.7.22/bin --datadir=/home/hadoop/data/mysql --initialize
2.11 创建自定义mysqld.pid存放目录,必须在初始化之后否则初始化数据目录不为空会报错
[hadoop@hadoop116 ~]$ mkdir -p /home/hadoop/data/mysql/mysqld
2.12 启动mysql服务
[hadoop@hadoop116 ~]$ /etc/init.d/mysqld start
2.13 登录mysql修改root用户和hadoop用户的密码并赋予远程访问权限
[hadoop@hadoop116 ~]$ mysql
mysql> update mysql.user set host = '%' where user = 'root';
mysql> flush privileges; (因为我们安装使用的 skip-grant-tables 跳过安全校验,这儿不刷新权限,会报权限错误)
mysql> grant all privileges on *.* to 'root'@'%' identified by 'root' with grant option;
mysql> grant all privileges on *.* to hadoop@'%' identified by 'hadoop';
mysql> flush privileges;
mysql> exit;
2.14 删除/etc/my.cnf文件中的免密权限校验属性skip-grant-tables并重启服务
2.15 验证hadoop用户或root用户登录并使用mysql是否成功
2.16 设置mysql服务开机自启
[hadoop@hadoop116 ~]$ sudo chkconfig mysqld on
以上就是centos6.7 mysql的两种安装方式,如果觉得本博客整理的还不错的筒子们,记得点赞分享哟!