本篇博客是为下面安装hive做准备
MySQL安装的方法有三种(这里采用通用二进制安装)
(29条消息) CentOS7安装MySQL的几种方法_神圣罗马帝国的博客-CSDN博客_centos7安装mysql的步骤和方法
下载MySQL在官网下载太慢了
MySQL官网下载太慢的解决方法_thm的博客-CSDN博客_mysql下载很慢
下载后通过xftp传至虚拟机(这里我还是跟之前一样传至/usr/local/tmp下)
tar -zxf mysql-5.7.27-linux-glibc2.12-x86_64.tar.gz
一、删除mariadb和以前安装的mysql 1.先查看mariadb的文件名rpm -qa | grep mariadb
1.1删除系统自带的mariadbrpm -e --nodeps mariadb(查看到的文件名)
二、删除以前安装的MySQL(这里是之前用yum安装的二进制包的ps -ef | grep mysql 查看服务下面会有链接,因为我也出错了) 1.先查看mysql是否有rpm -qa | grep -i mysql
2.删除已安装的MySQL(我没安装过)rpm -e --nodeps mysql(文件名)
3.二进制包安装的 三、MySQL配置以及一些必要操作 1.创建MySQL用户和组groupadd mysql
useradd -g mysql -s /sbin/nologin mysql
2.查看创建的用户和组cat /etc/passwd
cat /etc/group
3.配置环境变量PATH3.2vim /etc/profile打开环境变量文件(/usr/local/mysql/bin路径,esc退出编辑模式:x保存退出)
3.3重启服务
source /etc/profile
3.3验证MySQL环境变量配置成功没(mysql)这里服务没配置但也反证出环境变量配置成功了
4.数据库目录规划和设置| 文件类型 | 实例3308(默认3306但我的MySQL,Windows上安装了也是默认的3306) | 软链接 |
| 数据datadir | /usr/local/mysql/data | /data/mysql/data |
| 参数文件my.cnf | /usr/local/mysql/etc/my.cnf | |
| 错误日志log-error | /usr/local/mysql/log/mysql_error.log | |
| 二进制日志log-bin | /usr/local/mysql/binlogs/mysql-bin | /data/mysql/binlogs/mysql-bin |
| 慢查询日志slow_query_log_file | /usr/local/mysql/log/mysql_slow_query.log | |
| 套接字socket文件 | /usr/local/mysql/run/mysql.sock | |
| pid文件 | /usr/local/mysql/run/mysql.pid |
这里参考的博客中时默认端口的3306但我的3306已被Windows上的MySQL占用了
4.1创建文件夹(下面的命令创建到了/data/mysql下创建两个文件data,binlogs,如果mysql没有会自动创建)
mkdir -p /data/mysql/{data,binlogs}
mkdir -p /usr/local/mysql/{data,binlogs,log,etc,run}
4.2创建软链接(将前面/data/mysql/binlogs 的软链接放在/usr/local/mysql/binglogs中)
ln -s /data/mysql/binlogs /usr/local/mysql/binlogs
ln -s /data/mysql/data /usr/local/mysql/data
4.3添加下列文件的权限(这里不修改等下的数据库初始化就有问题)
chown -R mysql.mysql /usr/local/mysql/{data,binlogs,log,etc,run}
chown -R mysql.mysql /data/mysql
5.配置my.cnf参数文件1.先删除/etc/my.cnf下的文件
rm -f /etc/my.cnf(也可以直接在路径下删除)
2.在/usr/local/mysql/etc下创建my.cnf文件赋值下面的参数
[client] port = 3306 socket = /usr/local/mysql/run/mysql.sock [mysqld] port = 3306 socket = /usr/local/mysql/run/mysql.sock pid_file = /usr/local/mysql/run/mysql.pid datadir = /usr/local/mysql/data default_storage_engine = InnoDB max_allowed_packet = 512M max_connections = 2048 open_files_limit = 65535 explicit_defaults_for_timestamp=true skip-name-resolve lower_case_table_names=1 character-set-server = utf8mb4 collation-server = utf8mb4_unicode_ci init_connect='SET NAMES utf8mb4' innodb_buffer_pool_size = 1024M innodb_log_file_size = 2048M innodb_file_per_table = 1 innodb_flush_log_at_trx_commit = 0 key_buffer_size = 64M log-error = /usr/local/mysql/log/mysql_error.log log-bin = /usr/local/mysql/binlogs/mysql-bin slow_query_log = 1 slow_query_log_file = /usr/local/mysql/log/mysql_slow_query.log long_query_time = 5 tmp_table_size = 32M max_heap_table_size = 32M query_cache_type = 0 query_cache_size = 0 server-id=1
我的3306端口已用改了一下因为是跟着原博客做的所以路径没问题如果安装在其他路径下需要对应更改
6.初始化数据库mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data
报错了,已经初始化但数据文件中已有文件解决方法
(29条消息) 【MySQL】initialize specified but the data directory has files in it. Aborting_Big Smile-CSDN博客
7.生成ssl连接方式mysql_ssl_rsa_setup --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data/
8.设置启动项cd /usr/lib/systemd/system
vim mysqld.service(添加以下内容)
# Copyright (c) 2015, 2016, Oracle and/or its affiliates. All rights reserved. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; version 2 of the License. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA # # systemd service file for MySQL forking server # [Unit] Description=MySQL Server documentation=man:mysqld(8) documentation=http://dev.mysql.com/doc/refman/en/using-systemd.html After=network.target After=syslog.target [Install] WantedBy=multi-user.target [Service] User=mysql Group=mysql Type=forking PIDFile=/usr/local/mysql/run/mysqld.pid # Disable service start and stop timeout logic of systemd for mysqld service. TimeoutSec=0 # Execute pre and post scripts as root PermissionsStartOnly=true # Needed to create system tables #ExecStartPre=/usr/bin/mysqld_pre_systemd # Start main service ExecStart=/usr/local/mysql/bin/mysqld --daemonize --pid-file=/usr/local/mysql/run/mysqld.pid $MYSQLD_OPTS # Use this to switch malloc implementation EnvironmentFile=-/etc/sysconfig/mysql # Sets open_files_limit LimitNOFILE = 65535 Restart=on-failure RestartPreventExitStatus=1 PrivateTmp=false9.使服务生效并设置开机自启
systemctl daemon-reload
systemctl enable mysqld.service
systemctl is-enabled mysqld
10.mysql服务管理命令systemctl start mysqld.service(这个不行就service mysqld start)
systemctl stop mysqld.service
systemctl status mysqld.service
11.查看mysql进程ps -ef | grep mysql(第一个启动服务,第二个自带的)
12.查看MySQL端口号监听netstat -anlp| grep 3306(我的没反应原博客中也没一张图)
13.为MySQL服务器左安全设置/usr/local/mysql/bin/mysql_secure_installation
但这里要先找到root用户的初始密码
grep 'temporary password' /usr/local/mysql/log/mysql_error.log
出问题了卸载MySQL(博客上的方法也对,先停止服务,然后删除所有文件,删掉服务MySQL.service mysqld.servie也要删掉,判断服务删掉没有status查看找不到就对了)
(29条消息) linux-centos7 安装 mysql5.7.27 二进制包_忧郁的香菇-CSDN博客
这里我之前的废了,我重新装了个虚拟机测试,有机会在出篇卸载的博客接着 设置密码后 1.这里问你是否安装密码校验插件(选y)2.这里则是需要的插件校验等级(选0)
3.这里问是否需要重新设置root密码(选择n)
4.这里问是否需要删除匿名用户(选择y)
5.这里是是否警用root用户远程等录因为本身要使用hive导出导入(选择n)
6.这里询问是否删除test数据库(选择y)
7.这里询问是否重载权限表设置(选择y,出现all done说明MySQL安装好了)
8.登录 mysql -u root -p
此次安装这个MySQL把我整吐了,这是按照博客上安装,到这里就完了,等下一篇博客hive发现问题才来修改博客中有问题的地方。参考请谨慎



