前提:

环境:workstation 11 + CentOS 7 + mysql-5.6.40

安装前先查看服务器里是否有老版本的mysql已经被安装了

  1. rpm -qa|grep mysql

如果有就删除掉旧版本的mysql即可

  1. rpm -e (上面那条命令得到的信息,即mysql软件包名) --nodeps

正式安装:

1.上传安装包到/usr/local/目录下,解压缩,重命名,配置环境变量

  1. [root@hadoop ~]# cd /usr/local/
  2. [root@hadoop local]# tar xzvf mysql-5.6.40-linux-glibc2.12-x86_64.tar.gz
  3. [root@hadoop local]# mv mysql-5.6.40-linux-glibc2.12-x86_64 mysql
  4. [root@hadoop ~]# vi /etc/profile
  5. 添加变量:export MYSQL_HOME=/usr/local/mysql
  6. PATH后面添加 :$MYSQL_HOME/bin
  7. [root@hadoop ~]# source /etc/profile

2.创建目录,添加用户组和用户

  1. [root@hadoop local]# mkdir -p /data/mysql_data
  2. [root@hadoop local]# mkdir -p /data/mysql_log
  3. [root@hadoop local]# mkdir -p /data/log-bin
  4. [root@hadoop local]# groupadd mysql
  5. [root@hadoop local]# useradd -g mysql mysql
  6. [root@hadoop local]# chown -R mysql.mysql /data/mysql_data /data/mysql_log/ /data/log-bin/
  7. [root@hadoop local]# chown -R mysql.mysql /usr/local/mysql

3.配置my.cnf文件。根据自己需求填写,以下只是一个大概的例子

  1. [root@hadoop local]# vi /etc/my.cnf
  1. [mysqld]
  2. # GENERAL #
  3. user = mysql
  4. #default-storage-engine = INNODB
  5. default-storage-engine = MyISAM
  6.  
  7. socket=/data/mysql_data/mysql.sock
  8. pid-file=/data/mysql_data/mysql.pid
  9. port =
  10.  
  11. # MyISAM #
  12. key_buffer_size = 1000M
  13. myisam-recover-options = FORCE,BACKUP
  14.  
  15. # SAFETY #
  16. max_allowed_packet = 16M
  17. max_connect_errors =
  18. skip_name_resolve
  19.  
  20. # DATA STORAGE #
  21. datadir = /data/mysql_data/
  22. long_query_time =
  23.  
  24. # BINARY LOGGING #
  25. binlog_format=ROW
  26. log-bin = /data/log-bin/mysql-bin-
  27. expire_logs_days =
  28. sync_binlog =
  29. server-id =
  30. max_binlog_size = 500M
  31.  
  32. # REPLICATION #
  33. relay-log = /data/log-bin/relay-bin-
  34. slave-net-timeout =
  35.  
  36. # CACHES AND LIMITS #
  37. tmp_table_size = 32M
  38. max_heap_table_size =32M
  39. max_connections =
  40. thread_cache_size =
  41. open_files_limit=
  42. table_definition_cache =
  43. table_open_cache =
  44.  
  45. # INNODB #
  46. innodb_data_file_path = ibdatal:128M;ibdata2:10M:autoextend
  47. innodb_flush_method = O_DIRECT
  48. innodb_log_files_in_group =
  49. innodb_lock_wait_timeout =
  50. innodb_log_file_size = 256M
  51. innodb_flush_log_at_trx_commit =
  52. innodb_file_per_table =
  53. innodb_thread_concurrency =
  54. innodb_buffer_pool_size = 8G
  55.  
  56. # LOGGING #
  57. log-error = /data/mysql_log/mysql-error-.log
  58. log-queries-not-using-indexes =
  59. slow-query-log =
  60. long_query_time =
  61. slow_query_log_file = /data/mysql_log/mysql-slow-.log
  62.  
  63. # FOR SLAVE #
  64. #log-slave-updates = true
  65. #gtib-mode = on
  66. #enforce-gtib-consistency = true
  67. #master-info-repository = TABLE
  68. #relay-log-info-repository = TABLE
  69. #sync-master-info =
  70. #slave-parallel-workers =
  71. #binlog-checksum = CRC32
  72. #master-verify-checksum =
  73. #slave-sql-verify-checksum =
  74. #binlog-rows-query-log-events =
  75. #report-port =
  76. #report-host = 192.168.42.133

my.cnf

4.配置系统服务

  1. [root@hadoop local]# cp -af /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
  2. [root@hadoop local]# vi /etc/init.d/mysqld
  3. #修改两个变量,分别在46行和47行,set nu显示编辑文件行数
  4. basedir=/usr/local/mysql
  5. datadir=/data/mysql_data
  6. [root@hadoop local]# chmod 755 /etc/init.d/mysqld
  7. [root@hadoop local]# chkconfig --add mysqld
  8. [root@hadoop local]# chkconfig --level 345 mysqld on

5.初始化数据库

  1. [root@hadoop mysql]# ./scripts/mysql_install_db --user=mysql --defaults-file=/etc/my.cnf

6.启动数据库

  1. [root@hadoop ~]# service mysqld start

7.执行mysql命令报错并解决

  1. [root@hadoop ~]# mysql
  2. ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)

解决方法:执行软链接

  1. [root@hadoop ~]# ln -s /data/mysql_data/mysql.sock /tmp/mysql.sock
  1. [root@hadoop ~]# mysql #再次查看,成功登录mysql
  2. Welcome to the MySQL monitor. Commands end with ; or \g.
  3. Your MySQL connection id is
  4. Server version: 5.6.-log MySQL Community Server (GPL)
  5.  
  6. Copyright (c) , , Oracle and/or its affiliates. All rights reserved.
  7.  
  8. Oracle is a registered trademark of Oracle Corporation and/or its
  9. affiliates. Other names may be trademarks of their respective
  10. owners.
  11.  
  12. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
  13.  
  14. mysql> exit
  15. Bye
  16. [root@hadoop ~]#

再次执行mysql查看,成功登录mysql

8.修改root用户密码,增加mysql的安全性

  1. mysqladmin -u root password 'root' #设置密码后再执行mysql就无法登录mysql了
  2. mysql -uroot -proot #登录mysql需要输入密码
  3. mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'root' WITH GRANT OPTION; #允许root用户远程访问
  4. mysql> FLUSH PRIVILEGES; #刷新权限
  5. mysql> exit
  1. [root@hadoop ~]# mysqladmin -u root password 'root' #设置密码
  2. Warning: Using a password on the command line interface can be insecure.
  3. [root@hadoop ~]# mysql #无法登录
  4. ERROR (): Access denied for user 'root'@'localhost' (using password: NO)
  5. [root@hadoop ~]# mysql -uroot -p #这样登录
  6. Enter password:
  7. Welcome to the MySQL monitor. Commands end with ; or \g.
  8. Your MySQL connection id is
  9. Server version: 5.6.-log MySQL Community Server (GPL)
  10.  
  11. Copyright (c) , , Oracle and/or its affiliates. All rights reserved.
  12.  
  13. Oracle is a registered trademark of Oracle Corporation and/or its
  14. affiliates. Other names may be trademarks of their respective
  15. owners.
  16.  
  17. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
  18.  
  19. mysql> exit
  20. Bye
  21. [root@hadoop ~]# mysql -uroot -proot #或者这样登录
  22. Warning: Using a password on the command line interface can be insecure.
  23. Welcome to the MySQL monitor. Commands end with ; or \g.
  24. Your MySQL connection id is
  25. Server version: 5.6.-log MySQL Community Server (GPL)
  26.  
  27. Copyright (c) , , Oracle and/or its affiliates. All rights reserved.
  28.  
  29. Oracle is a registered trademark of Oracle Corporation and/or its
  30. affiliates. Other names may be trademarks of their respective
  31. owners.
  32.  
  33. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
  34.  
  35. mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'root' WITH GRANT OPTION; #远程访问
  36. Query OK, rows affected (0.03 sec)
  37.  
  38. mysql> FLUSH PRIVILEGES; #刷新权限
  39. Query OK, rows affected (0.00 sec)

9.删除匿名账户。因为mysql数据库安装完之后自带一个匿名账户,这非常容易增加数据库受到安全攻击的风险。

  1. mysql> update mysql.user set password=PASSWORD('your password') where user='';
  2. mysql> FLUSH PRIVILEGES;
  1. mysql> update mysql.user set password=PASSWORD('your password') where user='';
  2. Query OK, rows affected (0.05 sec)
  3. Rows matched: Changed: Warnings:
  4.  
  5. mysql> FLUSH PRIVILEGES;
  6. Query OK, rows affected (0.00 sec)

至此,我们的mysql就算安装完成了。

10.测试mysql是否可以远程登录。
由于HIVE有可能是调用远程的mysql进行元数据处理,我们需要测试一下是否可以远程登录mysql,为以后做准备。

如果你Windows本地装过mysql的话,直接cmd进入命令行,输入mysql -h 192.168.42.133 -uroot -proot,查看是否能登录。(我可以登录)

  1. C:\Users\Administrator>mysql -h 192.168.42.133 -uroot -proot
  2. mysql: [Warning] Using a password on the command line interface can be insecure.
  3.  
  4. Welcome to the MySQL monitor. Commands end with ; or \g.
  5. Your MySQL connection id is
  6. Server version: 5.6.-log MySQL Community Server (GPL)
  7.  
  8. Copyright (c) , , Oracle and/or its affiliates. All rights reserved.
  9.  
  10. Oracle is a registered trademark of Oracle Corporation and/or its
  11. affiliates. Other names may be trademarks of their respective
  12. owners.
  13.  
  14. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
  15.  
  16. mysql>

如果你Windows本地没有安装过mysql的话,可以安装workbench,这个软件可以远程登录mysql进行管理和开发。

点击 Test Connection,显示连接成功,如下图

然后点击ok-->ok,可建立远程连接。

mysql在linux上的安装的更多相关文章

  1. Mysql基于Linux上的安装

    MySQL 在Linux/Unix安装 所有平台的 MySQL 下载地址为: MySQL 下载 . 挑选需要的 MySQL Community Server 版本及对应的平台. 注意:安装过程需要通过 ...

  2. 大数据平台搭建 - Mysql在linux上的安装

    一.简介 MySQL是一个关系型数据库系统,由瑞典MySQL AB 公司开发,目前属于 Oracle 旗下产品.MySQL 是最流行的关系型数据库管理系统之一,在 WEB 应用方面,MySQL是最好的 ...

  3. Linux上编译安装PHP

    这篇文章主要介绍了关于Linux上编译安装PHP,有着一定的参考价值,现在分享给大家,有需要的朋友可以参考一下 之前在服务器上编译安装了PHP运行环境,但是安装完过了一段时间就差不多忘记了,只是零零星 ...

  4. Linux上centOs6+安装mysql5.7详细教程 - 前端小鱼塘

    https://coyhom.github.io/ 人类的本质是复读机,作为一个非linux专业人员学习linux最好的办法是重复 环境centos6.5 版本5.7 1: 检测系统是否自带安装mys ...

  5. jemalloc在linux上从安装到使用

    jemalloc在linux上从安装到使用 上次在引导大家安装Redis时提到可能会报错:  发现了redis有用到jemalloc. 首先,jemalloc是干什么的? 我们看看作者自己的介绍: j ...

  6. 分布式缓存技术redis学习系列(一)——redis简介以及linux上的安装

    redis简介 redis是NoSQL(No Only SQL,非关系型数据库)的一种,NoSQL是以Key-Value的形式存储数据.当前主流的分布式缓存技术有redis,memcached,ssd ...

  7. GIT在Linux上的安装和使用简介

    GIT最初是由Linus Benedict Torvalds为了更有效地管理Linux内核开发而创立的分布式版本控制软件,与常用的版本控制工具如CVS.Subversion不同,它不必服务器端软件支持 ...

  8. 分布式缓存技术redis学习(一)——redis简介以及linux上的安装

    redis简介 redis是NoSQL(No Only SQL,非关系型数据库)的一种,NoSQL是以Key-Value的形式存储数据.当前主流的分布式缓存技术有redis,memcached,ssd ...

  9. 在Linux上怎么安装和配置Apache Samza

    samza是一个分布式的流式数据处理框架(streaming processing),它是基于Kafka消息队列来实现类实时的流式数据处理的.(准确的说,samza是通过模块化的形式来使用kafka的 ...

随机推荐

  1. 【代码审计】XYHCMS V3.5任意文件删除漏洞分析

      0x00 环境准备 XYHCMS官网:http://www.xyhcms.com/ 网站源码版本:XYHCMS V3.5(2017-12-04 更新) 程序源码下载:http://www.xyhc ...

  2. 使用Core Audio实现对声卡输出的捕捉

    涉及的接口有: IMMDeviceEnumerator IMMDevice IAudioClient IAudioCaptureClient 主要过程: 创建多媒体设备枚举器(IMMDeviceEnu ...

  3. C语言实现mq收发数据的函数

    amqsget.c 从mq中读取消息 #include <stdio.h> #include <stdlib.h> #include <string.h> #inc ...

  4. 用 SQLite 和 FMDB 替代 Core Data

    本文转载至 http://blog.csdn.net/majiakun1/article/details/38680147 为什么我不使用Core Data Mike Ash 写到: 就个人而言,我不 ...

  5. ansj分词原理

    ansj第一步会进行原子切分和全切分,并且是在同时进行的.所谓原子,是指短句中不可分割的最小语素单位.例如,一个汉字就是一个原子.全切分,就是把一句话中的所有词都找出来,只要是字典中有的就找出来.例如 ...

  6. HTML5——表单美化

    闲聊: 今天小颖在跟着慕课网学习:表单美化 看完了自己跟着敲了敲,顺便做个笔记嘻嘻,好记性不如烂笔头,脑子记不住,就写成笔记,以后也方便查看,嘻嘻. 正文: 1.表单美化_单选按钮篇 2.表单美化_复 ...

  7. HDU 4725 The Shortest Path in Nya Graph(构图)

    The Shortest Path in Nya Graph Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K ...

  8. super()方法

    super()是一个调用父类的方法. super()用来解决多继承问题,直接用类名调用父类的方法在单继承中是没有问题的,但是如果使用多继承会涉及到查找顺序(MRO).重复调用等种种问题. python ...

  9. ssh文件配置

    <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.sp ...

  10. Arrays 类的一些常见用法

    package cn.ljs; import java.util.Arrays; public class ArrayDemo { public static void main(String [] ...