既然要学习大数据,那么我们肯定也离不开数据的使用,尤其是后来hive的学习。现在我们就开始对mysql的安装和配置使用。一般来说我们可以使用rpm包来安装。
yum -y install mysql-server yum -y install mysql-client 虽然这种方式比较简单,但是安装的路径固化了,不好在后期调整,并且我们在企业里工作也不会选择这种方式来安装的,一般情况下企业里都是使用二进制部署的,然后麻烦但是可以定制化,那
现在我们就开始这个过程吧。
1,Download and Check MD5
cd /usr/loacl
wget https://.....mysql.tar.gz
wget https://......mysql.tar.gz.md5
为什么我们要下载一个mysql的tar包后又下载一个md5呢?因为在网络下载的过程中,可能会遇到网络掉包的现象,就是数据丢掉一点,所以我们需要交验一下。
cat mysql.tar.gz.md5 执行这个命令后会反馈一个编码给我们
md5sum mysql.rat.gz 同样这个命令也会反馈一个编码给我们,我们就是要对比两个编码是否相同。
相同话,我们就在/usr/local这个目录下解压mysql这个tar包。
补充:
我们同时也需要安装一下jdk,我们就在/usr/java这个目录下安装吧。一般的linux系统都是自带java的,但可能版本不够新的原因我们会重新安装一个java,这次我们安装的jdk1.8。同时,因为/usr/目录下没有java这个目录,所以我们也手动创建一个呗。
mkdir -p /usr/java 然后把jdk的tar包放到这个目录下
tar -xzvf jdk.tar.gz
这个地方有一个小坑的,就是解压后的jdk的用户和用户组有点问题,我们需要修改一下。
然后我们配置下java的环境变量,这个使用全局配置文件来配置。
vi /etc/profile 进入到编辑模式
export JAVA_HOME=/usr/java/jdk1.8.0_45
export PATH=$JAVA_HOME/bin:$PATH
:wq 保存并退出
source /etc/profile
java -version
2,Check isnot install
ps -ef | grep mysqld
rpm -qa | grep -i mysql
使用这两个命令,你可以看到你的机子上可能已经存在这个服务或者rpm包,但没有问题的
3,tar and mv
将mysql的tar包放到/usr/local这个目录下,然后使用命令tar -xzvf来解压
然后我们重命名一下这个mysql
4,create group and user
接着我们就创建用于管理mysql的用户及用户组
输入命令:groupadd -g 101 dba 这个的用户组id和组名都可以自由定义的,我这里只是按照我一直以来的习惯来的
useradd -u 514 -g dba -G root -d /usr/local/mysql mysqladmin 如果已经存在这样的一个用户了,那就输入命令usermod -u 514 -g dba -G root -d /usr/local/mysql mysqladmin 来修改用户的一些基本属性。记住当创建了一个这样的用户后要给这个家目录补全没有的隐藏文件,否则使用的时候格式不好看甚至登陆不了的。
5,create /etc/my.cnf(640)
这个是mysql的参数配置文件,以后我们学到mysql优化的时候再详细地讲。现在你只需要跟着我创建这个文件然后将我这里的内容拷贝过去就好了。
命令:cd /etc/ touch my.cnf vi my.cnf 然后进入到编辑模式将我所贴出来的内容复制过去就好了,记得要复制全哦。当你创建完这个文件时,你进去后会发现里面已经有内容了,那么请你删除掉里面所有的内容,在复制我给的内容。复制完后请检查清楚是否全部写好,根据我以前踩过的坑,你直接复制的话[client]会缺少几个字母的,麻烦你补全了。
[client]
port = 3306
socket = /usr/local/mysql/data/mysql.sock
[mysqld]
port = 3306
socket = /usr/local/mysql/data/mysql.sock
skip-external-locking
key_buffer_size = 256M
sort_buffer_size = 2M
read_buffer_size = 2M
read_rnd_buffer_size = 4M
query_cache_size= 32M
max_allowed_packet = 16M
myisam_sort_buffer_size=128M
tmp_table_size=32M
table_open_cache = 512
thread_cache_size = 8
wait_timeout = 86400
interactive_timeout = 86400
max_connections = 600
# Try number of CPU's*2 for thread_concurrency
thread_concurrency = 32
#isolation level and default engine
default-storage-engine = INNODB
transaction-isolation = READ-COMMITTED
server-id = 1
basedir = /usr/local/mysql
datadir = /usr/local/mysql/data
pid-file = /usr/local/mysql/data/hostname.pid
#open performance schema
log-warnings
sysdate-is-now
binlog_format = MIXED
log_bin_trust_function_creators=1
log-error = /usr/local/mysql/data/hostname.err
log-bin=/usr/local/mysql/arch/mysql-bin
#other logs
#general_log =1
#general_log_file = /usr/local/mysql/data/general_log.err
#slow_query_log=1
#slow_query_log_file=/usr/local/mysql/data/slow_log.err
#for replication slave
#log-slave-updates
#sync_binlog = 1
#for innodb options
innodb_data_home_dir = /usr/local/mysql/data/
innodb_data_file_path = ibdata1:500M:autoextend
innodb_log_group_home_dir = /usr/local/mysql/arch
innodb_log_files_in_group = 2
innodb_log_file_size = 200M
innodb_buffer_pool_size = 2048M
innodb_additional_mem_pool_size = 50M
innodb_log_buffer_size = 16M
innodb_lock_wait_timeout = 100
#innodb_thread_concurrency = 0
innodb_flush_log_at_trx_commit = 1
innodb_locks_unsafe_for_binlog=1
#innodb io features: add for mysql5.5.8
performance_schema
innodb_read_io_threads=4
innodb-write-io-threads=4
innodb-io-capacity=200
#purge threads change default(0) to 1 for purge
innodb_purge_threads=1
innodb_use_native_aio=on
#case-sensitive file names and separate tablespace
innodb_file_per_table = 1
lower_case_table_names=1
[mysqldump]
quick
max_allowed_packet = 16M
[mysql]
no-auto-rehash
[mysqlhotcopy]
interactive-timeout
[myisamchk]
key_buffer_size = 256M
sort_buffer_size = 256M
read_buffer = 2M
write_buffer = 2M
而这里我们要修改的地方是innodb_buffer_pool_size = 1024M。其实一般我们在企业里面会使用到8~12G,但考虑到一些小伙伴机子的内存,我们现在暂定1个G吧。
6,chown and chmod privileges and try first install
我们要修改这个文件的权限,因为现在我们是使用root用户去创建的,所以这个文件的拥有者是root用户,用户组也是root
chown mysqladmin:dba /etc/my.cnf
chmod 640 /etc/my.cnf
修改/usr/local/mysql这个目录的权限和拥有者
chown -R mysqladmin:dba /usr/local/mysql
chmod -R 755 /usr/local/mysql
然后我su到mysqladmin这个用户下,先创建一个arch文件夹,然后开始尝试安装,这个时候一般会报一个错误缺少一个libaio.so这个包,那么我们就是用yum来安装一下呗。输入命令:yum -y install libaio
7,again install
输入命令:
scripts/mysql_install_db --user=mysqladmin --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data
8,configure mysql service and boot auto start
以root用户的身份完成一下的命令输入;
cd /usr/local/mysql cp support-files/mysql.server /etc/rc.d/init.d/mysql chmod +x /etc/rc.d/init.d/mysql chkconfig --del mysql chkconfig --add mysql chkconfig mysql on
然后查看/etc/rc.local这个文件,看是否是这样的内容:
#!/bin/sh
#
# This script will be executed *after* all the other init scripts.
# You can put your own initialization stuff in here if you don't
# want to do the full Sys V style init stuff.
touch /var/lock/subsys/local
最后执行命令,su - mysqladmin -c "/etc/init.d/mysql start --federated"
9,start mysql and to view process and listening
su - mysqladmin
rm -f my.cnf 因为我们已经在/etc/目录下配置了my.cnf这个文件了,所以这里的这个就可以删除了
mysqld_safe & 直接回车键 完成启动mysql的服务
我们可以查看下mysql的进程
ps -ef | grep mysqld
netstat -tunlp | grep mysql
service mysql status
到这里,我们就完成了mysql的安装以及配置了