【若泽大数据实战第五天】MySQL部署

MySQL:

RPM包:如果是自己学习、测试、快速部署的话,可以选择rpm包进行安装。生产上是不会用rpm包的。

tar包:一般定制化的、企业级的安装是选择tar包。

rpm包安装很简单,tar包安装比较复杂一些。

生产上mysql部署,可以看一下老师的博客:

https://github.com/Hackeruncle/MySQL/blob/master/MySQL%205.6.23%20Install.txt

1.RPM包的安装

先搜一下,yum search mysql   看一下

安装server端:yum  install -y mysql-server.x86_64

安装客户端:yum install -y mysql.x86_64

安装完了之后,可以which一下,查看一下。

安装完了之后:service mysqld start  看一下情况。(d表示后台运行的进程)

ps -ef|grep mysql   看一下

netstat -nlp|grep   xxx  根据上面查到的pid看一下(并不是所有的进程都有端口号)

默认的mysql的端口号为:3306

进mysql数据库:mysql -uroot -p ,不需要输入密码,直接两次回车键,就可以进去了。

mysql在创建的时候,会创建一个root用户,空密码。-u代表用户,后面加上用户,这里加的是root。

show databases;    可以查看有哪些数据库。

停止:service mysqld stop

rpm  mysql软件卸载

rpm -qa | grep mysql   查询一下mysql相关的rpm包邮哪些,然后卸载

rpm -qa  代表:列出所有被安装的rpm package             -q 代表query,a代表all 

rpm -e xxx  :卸载xxx rpm包

[root@hadoop001 ~]# rpm -qa | grep mysql
mysql-libs-5.1.73-8.el6_8.x86_64
mysql-server-5.1.73-8.el6_8.x86_64
mysql-5.1.73-8.el6_8.x86_64
[root@hadoop001 ~]# rpm -e mysql-5.1.73-8.el6_8.x86_64
error: Failed dependencies:
        mysql = 5.1.73-8.el6_8 is needed by (installed) mysql-server-5.1.73-8.el6_8.x86_64
[root@hadoop001 ~]# rpm -e  mysql-server-5.1.73-8.el6_8.x86_64
warning: /var/log/mysqld.log saved as /var/log/mysqld.log.rpmsave
[root@hadoop001 ~]# 
[root@hadoop001 ~]# 
[root@hadoop001 ~]# rpm -e mysql-5.1.73-8.el6_8.x86_64

2.tar包的安装

mysql是一种专业的软件,一般专门的软件会有专门的用户去部署 运行。比如:
oa系统  oaadmin       会有专门的linux用户oaadmin去部署
erp系统 erpadmin      会有专门的Linux用户erpadmin去部署

因为有时候权限发生变更的时候,会导致其他一些系统无法访问。

所以要养成习惯,不同的用户去管理不同的组件。

下面是mysql的安装:

版本:mysql-5.6.23-linux-glibc2.5-x86_64.tar.gz

①准备工作  Download and Check MD5:

可以选择用wget + 链接 去网页下载

也可以用rz命令(有些软件貌似不能用rz命令)从本地上传到linux。本次选择用rz命令。

一般wget + 链接 去网页下载的软件安装包,需要用md5去校验一下,因为下载的可能有问题,或者包有东西丢失。(前提是人家会提供给你md5校验盒)

MD5值是一串hash值,文件只要有任何字节变动,MD5值就会跟着改变,因此可以作为校验文件的依据。

  1. 在前端输入MD5值,选中要上传的war包。
  2. 在前端判断war包的MD5值,与输入的MD5值是否相同,判断是否被替换。
  3. 在后台进行校验接收的war包的MD5值,与输入的MD5值是否相同,判断是否存在丢包情况。

md5校验:md5sum   xxx     见下图:

从上图:获取一串字符,把这个字符和提供的字符对比一下,结果一样,说明没有问题。

(用这个   cat mysql-5.6.23-linux-glibc2.5-x86_64.tar.gz.md5    可以查看提供的md5校验符)

②Check isnot install

 ps -ef|grep mysqld  先看一下进程里有没有

再 rpm -qa |grep -i mysql  检查一下

如果有的话,可以这样卸载,其它方式也可以:

比如:

③tar and mv

tar xzvf mysql-5.6.23-linux-glibc2.5-x86_64.tar.gz   解压一下

mv mysql-5.6.23-linux-glibc2.5-x86_64 mysql    移动到mysql里面

④Create group and user 

groupadd -g 101 dba   创建一个组dba  组id为101

useradd -u 514 -g dba -G root -d /usr/local/mysql  mysqladmin

增加一个用户名mysqladmin     -u 用户id为514  -g主组为dba   -G副组为root   -d家目录

从上截图可以看出,因为用户mysqladmin家目录已经,存在就无法将skell目录的隐藏文件拷贝进去。

这会发生什么?

这时候切换到mysqladmin用户可以看到:变成了-bash-4.1$了:

原因:

原因是缺少了隐藏文件:个人环境变量:

把上图里:/etc/skel/下面的这三个隐藏文件copy到里面就可以了。如下:

下面是设置密码:passwd mysqladmin

⑤Create /etc/my.cnf   (640权限)

 对于一个系统想要运行肯定需要配置文件   比如:需要多少内存、日志放在哪里、缓存多少等等

mysql也是一样,需要一个配置文件,这个文件就是my.cnf

#defualt start: /etc/my.cnf->/etc/mysql/my.cnf->SYSCONFDIR/my.cnf->$MYSQL_HOME/my.cnf-> --defaults-extra-file->~/my.cnf 

mysql在默认启动的时候,首先在etc/my.cnf这里面找配置文件,如果这里面找不到,再去SYSCONFDIR/my.cnf这里面找,如果这里面也找不到,再去$MYSQL_HOME/my.cnf,再去defaults-extra-file,再去/my.cnf 

现在统一的,就在第一个文件里配置就可以了,etc/my.cnf

依次运行:cd /etc >  touch my.cnf  > vi my.cnf   编辑的时候如果发现文件中有内容,把内容先清空。

在配置文件里加入下面的内容,保存即可。前面是客户端的、后面是服务端的。复制下面内容的时候注意在insert下粘贴,不然首行会丢失几个字符。

[root@sht-sgmhadoopnn-01 mysql]# cd /etc/
[root@sht-sgmhadoopnn-01 etc]# touch my.cnf
[root@sht-sgmhadoopnn-01 etc]# vi my.cnf

[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

#生产上 机械硬盘 sata盘 5000r转 7200 10000 15000 ==> ssd 生产
# innodb_buffer_pool_size 调大 8G (调优的时候一般是这个地方) 因为这个是个人使用,所以这里使用1024M

innodb_buffer_pool_size = 1024M 
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

⑥chown and chmod privileges and try first install

[root@10-9-140-90 local]# chown  mysqladmin:dba /etc/my.cnf
[root@10-9-140-90 local]# chmod  640 /etc/my.cnf
[root@10-9-140-90 local]# ll /etc/my.cnf 
-rw-r----- 1 mysqladmin dba 251 Feb 18 23:36 /etc/my.cnf
[root@10-9-140-90 local]#

[root@10-9-140-90 local]# chown -R mysqladmin:dba /usr/local/mysql
[root@10-9-140-90 local]# chmod -R 755 /usr/local/mysql
[root@10-9-140-90 local]# su - mysqladmin
[mysqladmin@10-9-140-90 ~]$ pwd
/usr/local/mysql
[mysqladmin@10-9-140-90 ~]$ 

#创建arch目录 存储binlog 归档日志   mysql--maxwell--kafka--ss--hbase 实时  mcp

[mysqladmin@10-9-140-90 ~]$ mkdir arch 

[mysqladmin@10-9-140-90 ~]$ scripts/mysql_install_db

然后等着就成功了,最后几行显示如下:

⑦Again  install
[root@10-9-140-90 local]# scripts/mysql_install_db --user=mysqladmin --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data

然后就成功了。

如果出现了错误,查看data/hostname.err文件 仔细看一下什么错误。

⑧Configure mysql service and boot auto start

用root用户,进入cd /usr/local/mysql目录:

#将服务文件拷贝到init.d下,并重命名为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 --level 345 mysql on           

vi /etc/rc.local            (目的是设置开机启动)

vi /etc/rc.local

⑨Start mysql and to view process and listening       启动mysql以及查看进程和监听

切换到mysqladmin账号 :su - mysqladmin

删除 my.cnf文件   它会自动创建

service mysql start    启动

service mysql status  查看

service mysql stop     停止

用这个命令也可以启动mysql:mysqld_safe &

 用这三个命令查看一下:

ps -ef|grep mysqld

netstat -tulnp | grep mysql

service mysql status

可以看到mysql的pid,端口号(mysql端口号是3306)

到此为止,mysql部署完成。mysql会创建两个用户:

root用户   密码为空  (设置四次root用户)

空用户      密码为空  (设置两次空用户)

⑩Login mysql 

bin/mysql  --help  可以看帮助  mysql的用法

因为有个空账号和密码,所以可以这样直接回车

show databases;   可以查看当前用户有权限看的有哪些数据库:

bin/mysql -uroot -p -h127.0.0.1 
用这个可以登陆root用户,-u用户  -p密码   -h要访问的ip   (这里127.0.0.1代表当前机器,如果是其他人的机器,可以换掉)

在这里因为root密码为空,直接回车就可以了。

但是生产上密码肯定不为空 比如123456
bin/mysql -uroot  -p -h127.0.0.1 一回城就让你输入密码  这是安全的    不会被history记录

bin/mysql -uroot  -p123456 -h127.0.0.1 一回城就进数据库 这是不安全的 会被history记录
bin/mysql -u root  -p 123456 -h 127.0.0.1 -P3306     -u后面可以空格  -h后面也可以空格  -p后面不能空格(因为空格也算密码)

11.Update password and Purge user     更新密码 清空用户 (因为这是空用户空密码登陆的)

切换数据库,use mysql  切换到mysql这个库下面

猜你喜欢

转载自blog.csdn.net/liweihope/article/details/87632429