大数据开发之前期准备----MySQL安装与配置

既然要学习大数据,那么我们肯定也离不开数据的使用,尤其是后来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的安装以及配置了

猜你喜欢

转载自blog.csdn.net/weixin_39702831/article/details/82722475