HDP2.4安装(三):MySql安装

ε祈祈猫儿з 提交于 2020-03-12 11:45:39

      在安装Ambari时,Ambari默认的数据库是ProstgreSQL,对ProstgreSQL不太熟悉,选择使用MySql。 但Centos 7 默认支持的是MariaDB数据库. MariaDB是MySQL的一个分支,主要由开源社区在维护。安装过程中先将Centos7默认安装的MariaDB数据库删除,再重新安装MySql.

安装步骤:

  • 软件下载  (mysql的rpm包有很多文件,只需要安装Server 和 Client)
  • 数据库安装
  • 用户权限配置
  • 安装目录及功能
  • 常用创建用户方法
  • 客户端查询工具  (mysql-workbench-community-6.3.7-winx64.msi

软件安装包:

  • MySQL-client-advanced-5.6.22-1.el7.x86_64.rpm
  • MySQL-server-advanced-5.6.22-1.el7.x86_64.rpm

数据库安装:

  •  删除Centos默认安装的MariaDB
  • 命令:rpm -qa|grep mariadb  (查mariadb安装包)
  • 命令:rpm -e --nodeps mariadb-libs-5.5.44-2.el7.centos.x86_64  (mariadb-libs-5.5.44-2.el7.centos.x86_64是上一条命令查出结果)
  • 将MySql的安装包文件上传至linux的某个目录下并在命令行中切换至该目录, 如下图
  • 命令: yum install -y perl-Module-Install.noarch  (解决mysql server 安装时异常)
  • 命令:rpm -ivh MySQL-server-advanced-5.6.22-1.el7.x86_64.rpm    ( 安装mysqlServer)
  • 命令:rpm -ivh MySQL-client-advanced-5.6.22-1.el7.x86_64.rpm (安装mysqlclient)
  • 命令:service mysql start   (启动mysql 提示 sucess 则,ok)
  • 若服务启动时 Starting MySQL. ERROR! The server quit without updating PID file (/var/lib/mysql/hdp1.pid),按下面步骤操作。
  • 命令:rm -rf /usr/my.cnf (删除后重启 reboot, 重新执行上面启动服务命令,提示sucess,则ok)
  • 命令:service mysql stop    (因为默认root没有密码,你进不去)

用户权限配置:

  • mysql_secure_installation:是用来提高mysql库的安全设置的命令,包括为root用户设置密码,删除匿名账号, 取消root用户远程登录权限,删除test库和对test库的访问权限,刷新授权表使修改生效等操作
  • 查相关资料,可执行:/usr/lib/mysql_secure_installation 来设置root密码,在实际安装的过程中,mysql给root生成了一个随机的加密密码,在执行mysql_secure_installation时,第一步就过不去. (待研究
  • 上一步走不通,使用mysqld_safe命令,绕过密码登陆,必须先将mysql服务停掉
  • 命令:mysqld_safe --user=mysql --skip-grant-tables --skip-networking & mysql -u root mysql  (启动mysql,避开密码登陆)
  •         我在这里遇到了问题 Error 2002,如下图,切换到 /var/lib/mysql 目录下,可以看到mysql.sock 和 hdp1.pid 文件,说明mysql已经启动
  • 命令:mysql --socket=/var/lib/mysql/mysql.sock    (如果没有上面的错误,则省掉这步)

     进入mysql 客户端的操作命令行

  • 执行Sql: use mysql;   (切换至mysql 数据库)
  • 执行Sql: UPDATE user SET Password=PASSWORD('123456a?') where USER='root'; (更新root用户密码,PASSWORD为加密函数)如图:
  • 执行: flush  privileges;   (刷新权限)
  • 输入: quit;   (退出mysql 客户端, 返回至linux命令行)

  • 命令: service mysql restart   (重启mysql服务)
  • 命令: mysql -u root -p   (以root用户登陆mysql客户端,接下来会提示你输入密码,此时屏幕不可见,不要以为死机)

  • 进入mysql 客户端命令行,随便执行一条sql, 如: show databases;
  • 返回:ERROR 1820 (HY000): You must SET PASSWORD before executing this statement     (这也就是常用的第一次登陆需要修改密码)
  • 执行Sql: SET PASSWORD = PASSWORD('123456a?');
  • 验证Sql: show databases;   (显示结果则OK)
  • 执行: quit;  

  • 命令: service mysql restart   (重启mysql服务)
  • 命令: mysql -u root -p     (进行mysql 命令行)

  • 执行:  GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456a?' WITH GRANT OPTION;   (允许所有IP远程访问mysql)
  • 执行:  flush  privileges;   (刷新权限)
  • 执行:quit; 

  • 命令:service mysql restart   (重启mysql服务,mysql安装完成)

安装目录及功能:

  • mysql安装完成后,文件分布在以下几个目录:
  1. /var/lib/mysql   数据库文件,目录下的 ibdata1 用于存放数据,索引等,是MYSQL的最主要的数据。ib_filelog是数据库日志文件,采用二进制存储。
  2. /usr/share/mysql  命令及配置文件目录
  3. /usr/bin  mysqladmin、mysqldump 等命令
  • 在linux命令行下,可使用  whereis mysql  命令查看其安装目录,如图:
  • 常见用户创建方法:

    • mysql账号由用户名+主机组成,可以出现重复的用户名,跟其他的数据库不一样。
    • 主机名可以用机器名或IP地址,也可以用通配符%
    • mysql创建用户的方法分成三种:CREATE USER的方法、GRANT的方法、INSERT USER表的方法
    • Create User脚本: CREATE USER 'username@host' [IDENTIFIED BY 'PASSWORD'] 其中密码是可选项;
    •                  示例:  CREATE USER 'john'@'192.168.189.71' IDENTIFIED BY "123";
    • Grant脚本:GRANT <ALL|priv1,priv2,.....privn> ON [object] To [User] [IDENTIFIED BY 'password'] [WITH GRANT OPTION];
    •                  <privn>:代表权限mysqlr定义的14个权限
    •                  [object] :数据库名.表名
    •                  [User]: userName@host
    •                  [WITH GRANT OPTION]:赋User拥有给其它用户授权的权限
    •       示例:grant select,insert,update,delete,create,drop on test.hr to john@192.168.10.1 identified by '123';
    •       注意:当user用户存在时,grant会对用户进行授权,但当数据库中不存在该用户时,会创建相应的用户并授权。
    • Insert User: 直接向mysql.user表插入记录

    客户端查询分析工具:

    • 类似于MS sqlserver 的查询分析器或Oracle的PLSql, 在windows机器上执行安装
    • 新建至Mysql的连接,输入用户(root), 密码(上一次设置的密码),点击“OK”
    • 进入后,即可进行数据库、表的创建或数据的查询操作,如图:
    易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
    该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!