mysql 开发进阶篇系列 29 数据库二进制包安装
概述
对于二进制安装,优点是可以安装到任何路径下,灵活性好,一台服务器可以安装多个mysql。缺点是已经绎过编译,性能不如源码编译得好,不能灵活定制编译参数。如果用户即不想安装最简单却不够灵活的RPM包,又不想安装复杂费时的源码包,那么已编译好的二进制包将是最好的选择。
一.步骤1: 解压glib包
-- 在 /usr/local 下创建一个mysql文件夹,用来存放
[root@hsr local]# mkdir mysql
[root@hsr local]# ls
bin etc games include lib lib64 libexec mysql sbin share src
-- 在原有/usr/tool目录将gz压缩包解压
[root@hsr tool]# tar -zxvf mysql-5.7.-linux-glibc2.-x86_64.tar.gz
mysql-5.7.-linux-glibc2.-x86_64/bin/myisam_ftdump
mysql-5.7.-linux-glibc2.-x86_64/bin/myisamchk
mysql-5.7.-linux-glibc2.-x86_64/bin/myisamlog
mysql-5.7.-linux-glibc2.-x86_64/bin/myisampack
mysql-5.7.-linux-glibc2.-x86_64/bin/mysql
mysql-5.7.-linux-glibc2.-x86_64/bin/mysql_client_test_embedded
mysql-5.7.-linux-glibc2.-x86_64/bin/mysql_config_editor
.....
--将解压的文件复制到/usr/local/mysql目录下
[root@hsr tool]# sudo cp -r mysql-5.7.-linux-glibc2.-x86_64 /usr/local/mysql
--在mysql-->mysql-5.7.23-linux-glibc2.12-x86_64路径下 解压的文件共9个 目录如下:
[root@hsr mysql]# ls mysql-5.7.-linux-glibc2.-x86_64 bin COPYING docs include lib man README share support-files
注意:mysql-5.7.23-linux-glibc2.12-x86_64目录层次要去掉,变为/usr/local/mysql 下的9个目录,在文章后面会去掉这层。
二. 步骤2:
2.1 添加mysql用户 useradd -r -g 用户名 用户组
[root@hsr mysql]# groupadd mysql
[root@hsr mysql]# useradd -r -g mysql mysql
2.2 切换到 /usr/local/mysql 目录下,改变目录拥有者为mysql
[root@hsr mysql]# chown -R mysql.mysql /usr/local/mysql
2.3 新环境安装libaio包 mysql 依赖于libaio
[root@hsr mysqld]# yum search libaio
三 步骤3:
安装mysql,使用 --initialize,basedir 基础目录,datadir 为数据目录。
[root@hsr ~]# cd /usr/local/mysql/mysql-5.7.-linux-glibc2.-x86_64/bin
[root@hsr bin]# ./mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data
--23T06::.157088Z [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).
--23T06::.157246Z [ERROR] Can't find error-message file '/usr/local/mysql/share/errmsg.sys'. Check error-message file location and 'lc-messages-dir' configuration directive.
--23T06::.287087Z [Warning] InnoDB: New log files created, LSN=
--23T06::.059913Z [Warning] InnoDB: Creating foreign key constraint system tables.
--23T06::.138616Z [Warning] No existing UUID has been found, so we assume that this is the first time that this server has been started. Generating a new UUID: a7e28575-a6a1-11e8-af13-000c29affb65.
--23T06::.154064Z [Warning] Gtid table is not ready to be used. Table 'mysql.gtid_executed' cannot be opened.
--23T06::.155635Z [Note] A temporary password is generated for root@localhost: ro0ssOGT?ocf
四步骤4:
4.1 创建RSA private key。
[root@hsr bin]# bin/mysql_ssl_rsa_setup --datadir=/usr/local/mysql/data
4.2 修改当前目录拥有者为 root 用户,修改data 目录拥有者为 mysql
[root@hsr bin]# chown -R root:root /usr/local/mysql
[root@hsr bin]# chown -R mysql:mysql /usr/local/mysql/data
五.步骤5 配置mysql(mysql.server)和my.cnf文件
--检查 etc/my.cnf文件是否存在 (二进制安装,默认配置文件在/etc/my.cnf)
[root@hsr etc]# find -name my.cnf
./my.cnf
--将support-files 目录下的mysql.server文件复制到etc/init.d下
[root@hsr ~]# cd /usr/local/mysql/mysql-5.7.-linux-glibc2.-x86_64/support-files
[root@hsr support-files]# cp mysql.server /etc/init.d/mysql
-- 配置/etc/init.d/mysql服务文件 添加basedir和datadir
[root@hsr support-files]# vim /etc/init.d/mysql
修改my.cnf 配置以下四个参数(注意:chkconfig -- level 35 mysqld on 不要加上,后面报错,又得去掉)
六.步骤6 启动mysql
[root@hsr bin]# service mysql start
/etc/init.d/mysql: line : my_print_defaults: command not found
Starting MySQL ERROR! Couldn't find MySQL server (/usr/local/mysql/bin/mysqld_safe) --提示未找到路径,需要把"mysql-5.7.23-linux-glibc2.12-x86_64" 文件夹去掉,使用mv 将里面的文件移到/usr/locl/mysql下,共9个文件
[root@hsr bin]# mv /usr/local/mysql/mysql-5.7.-linux-glibc2.-x86_64/README /usr/local/mysql
[root@hsr bin]# mv /usr/local/mysql/mysql-5.7.-linux-glibc2.-x86_64/COPYING /usr/local/mysql
[root@hsr bin]# mv /usr/local/mysql/mysql-5.7.-linux-glibc2.-x86_64/support-files /usr/local/mysql
[root@hsr bin]# mv /usr/local/mysql/mysql-5.7.-linux-glibc2.-x86_64/share /usr/local/mysql
[root@hsr bin]# mv /usr/local/mysql/mysql-5.7.-linux-glibc2.-x86_64/man /usr/local/mysql
[root@hsr bin]# mv /usr/local/mysql/mysql-5.7.-linux-glibc2.-x86_64/lib /usr/local/mysql
[root@hsr bin]# mv /usr/local/mysql/mysql-5.7.-linux-glibc2.-x86_64/include /usr/local/mysql
[root@hsr bin]# mv /usr/local/mysql/mysql-5.7.-linux-glibc2.-x86_64/docs /usr/local/mysql
[root@hsr bin]# mv /usr/local/mysql/mysql-5.7.-linux-glibc2.-x86_64/bin /usr/local/mysql
-- 再启动
[root@hsr bin]# service mysql start
Starting MySQL.--24T01::.545225Z mysqld_safe error: log-error set to '/var/log/mariadb/mariadb.log', however file don't exists. Create writable for user 'mysql'.
ERROR! The server quit without updating PID file (/usr/local/mysql/data/hsr.pid). -- 提示/var/log/mariadb/mariadb.log 不存在, 打开my.cnf 能看到定义的默认路径
[mysqld_safe]
log-error=/var/log/mariadb/mariadb.log
pid-file=/var/run/mariadb/mariadb.pid --创建目录 给权限
[root@hsr bin]# mkdir /var/log/mariadb
[root@hsr bin]# touch /var/log/mariadb/mariadb.log
[root@hsr bin]# chown -R mysql:mysql /var/log/mariadb/
-- 再启动
[root@hsr bin]# service mysql start
Starting MySQL.... ERROR! The server quit without updating PID file (/usr/local/mysql/data/hsr.pid). -- 错误信息是hsr.pid进程出问题,先查看下日志
[root@hsr ~]# cat /var/log/mariadb/mariadb.log
在my.cnf中注释上面参数(#chkconfig --level 35 mysqld on),再启动
上图意思是不能创建mysql.sock.lock 文件,一般是权限不足,如下设置好权限,启动成功
七 登录mysql
[root@hsr ~]# mysql -u root -p
bash: mysql: 未找到命令
未找到命令,是由于系统默认会查找/usr/bin下的命令,如果这个命令不在这个目录下,就会找不到命令,需要映射一个链接到/usr/bin目录下,相当于建立一个链接文件。
[root@hsr ~]# ln -s /usr/local/mysql/bin/mysql /usr/bin
[root@hsr ~]# mysql -u -root -p
ERROR (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2) --错误信息是不能连接到本地的socket ,系统默认找到了/tmp目录下,需要设置链接文件
[root@hsr tmp]# ln -s /var/lib/mysql/mysql.sock /tmp/mysql.sock
[root@hsr ~]# mysql -u -root -p
Enter password:
八. 设置密码
8.1 打开my.cnf文件,添加skip-grant-tables,来重置密码,如下所示
8.2 启动服务,再次登录,在输入密码处按回车键进入。
[root@hsr ~]# vim /etc/my.cnf
[root@hsr ~]# service mysql restart
Shutting down MySQL.. SUCCESS!
Starting MySQL. SUCCESS!
[root@hsr ~]# mysql -u root -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is
Server version: 5.7.
8.3 进入mysql后,修改密码
mysql> use mysql;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A Database changed mysql> update user set authentication_string=password('') where user='root';
Query OK, row affected, warning (0.00 sec)
Rows matched: Changed: Warnings:
退出mysql>quit; 编辑 my.cnf 注释掉#skip-grant-tables
8.4 重启mysql服务,输入修改后的密码(123456)进入
[root@hsr ~]# service mysql restart
Shutting down MySQL.. SUCCESS!
Starting MySQL. SUCCESS!
[root@hsr ~]# mysql -u root -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is
Server version: 5.7.
九 远程登录
-- 登录到mysql后设置权限
mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '' WITH GRANT OPTION;
ERROR (HY000): You must reset your password using ALTER USER statement before executing this statement.
-- 再设置密码
mysql> SET PASSWORD = PASSWORD('');
Query OK, rows affected, warning (0.00 sec)
-- 设置权限
mysql> ALTER USER 'root'@'localhost' PASSWORD EXPIRE NEVER;
Query OK, rows affected (0.00 sec)
-- 刷新权限
mysql> flush privileges;
Query OK, rows affected (0.01 sec)
-- 设置远程登录权限
mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '' WITH GRANT OPTION;
Query OK, rows affected, warning (0.00 sec)
-- 在my.cnf中 添加端口,重启服务
-- 测试端口是否打开
[root@hsr ~]# firewall-cmd --query-port=/tcp
no
-- 防火墙设置
[root@hsr ~]# firewall-cmd --zone=public --add-port=/tcp --permanent
success
-- 重新加载
[root@hsr ~]# firewall-cmd --reload
success
-- 再次测试端口
[root@hsr ~]# firewall-cmd --query-port=/tcp
yes
-- 在windows端拼通成功
--- 最后使用SQLyog连接成功
mysql 开发进阶篇系列 29 数据库二进制包安装的更多相关文章
- mysql 开发进阶篇系列 30 数据库二进制包(安装指定路径,目录介绍)
一. 指定路径 在上一篇里,二进制包解压后,全部放入在/usr/local/mysql目录下,在安装时指定了基础目录和数据目录, --basedir=/usr/local/mysql --datadi ...
- mysql 开发进阶篇系列 28 数据库二进制包安装(centos系统准备)
1. centos 7安装工作 对于mysql二进制安装,我这里在使用一台新的centos系统.准备好VMware,Xftp-6.0, Xshell-6.0.在VMware中网络使用桥接模式,分配20 ...
- mysql 开发进阶篇系列 25 数据库RPM安装目录介绍
一.概述 mysql可以在多个平台上运行,在windows平台上安装有noinstall包和图形化包二种方式.在linux/unix平台上有RPM包安装,二进制包(Binary Package)安装, ...
- mysql 开发进阶篇系列 45 物理备份与恢复(xtrabackup 安装,用户权限,配置)
一. 安装说明 安装XtraBackup 2.4 版本有三种方式: (1) 存储库安装Percona XtraBackup(推荐) (2 )下载的rpm或apt包安装Percona XtraBacku ...
- mysql 开发进阶篇系列 27 数据库字符集设置
在安装完数据库后,使用汉字插入到表中,会报错,需要修改字符集类型,如下图所示: -- 插入汉字时报错 INSERT INTO User2 VALUES('张三') -- 查看字符集 SHOW VARI ...
- mysql 开发进阶篇系列 26 数据库RPM安装演示
一.概述 上一章讲到了RPM安装后的文件目录,这章还是介绍下安装步骤.也便以后做参考吧. 1. 移出centos 7系统自带的mysql库 yum remove mysql-libs 2. 将下载的m ...
- mysql 开发进阶篇系列 55 权限与安全(安全事项 )
一. 操作系统层面安全 对于数据库来说,安全很重要,本章将从操作系统和数据库两个层面对mysql的安全问题进行了解. 1. 严格控制操作系统账号和权限 在数据库服务器上要严格控制操作系统的账号和权限, ...
- mysql 开发进阶篇系列 46 物理备份与恢复( xtrabackup的 选项说明,增加备份用户,完全备份案例)
一. xtrabackup 选项说明 在操作xtrabackup备份与恢复之前,先看下该工具的选项,下面记录了xtrabackup二进制文件的部分命令行选项,后期把常用的选项在补上.点击查看xtrab ...
- mysql 开发进阶篇系列 47 物理备份与恢复(xtrabackup 的完全备份恢复,恢复后重启失败总结)
一. 完全备份恢复说明 xtrabackup二进制文件有一个xtrabackup --copy-back选项,它将备份复制到服务器的datadir目录下.下面是通过 --target-dir 指定完全 ...
随机推荐
- django mysql 数据库配置
在settings.py中保存了数据库的连接配置信息,Django默认初始配置使用sqlite数据库. DATABASES = { 'default': { 'ENGINE': 'django.db. ...
- c#: WebBrowser控制台输出
还是处理视频下载所相关的问题. 有些网站,它的页面代码是由页面加载后js动态生成,那么其原始的html便不能用.页面渲染后的代码,是我们需要的 c#中,我用WebBrowser这个控件处理.设置项目类 ...
- oracle 中的sql 语句
1.update 表名 set 表字段=(select 另一个表中的相同字段 from 另一个表表名 where 表.字段=另一个表.字段) where 表.字段=? 例子:将某个表中的更新到另一个 ...
- [原]CentOS7.2部署KVM虚拟机
前段时间学习了关于PostGis.OSM数据以及Mapnik相关内容,接下来将利用假期重点学习PostgreSQL-XL和瓦片服务器集群技术,因此先把环境搭好.计划采用KVM来充分利用家里不太宽裕的“ ...
- Android如何在http头信息里设置参数
在使用http请求server时常常要传递一些参数给server,如IMEI号.平台号.渠道号.客户端的版本号等一些通用信息,像这些参数我们没有必要每次都拼在url后,我们可以统一添加到http头里. ...
- 17. pt-online-schema-change
在平时MySQL的运维过程中,经常会遇到表结构的变更.在表比较小的时候,直接进行变更,时间较短,但是当表非常大的时候,这么做会导致应用卡死,服务不可用.目前InnoDB引擎是通过以下步骤来进行DDL的 ...
- Spring 配置文件中 元素 属性 说明
<beans /> 元素 该元素是根元素.<bean /> 元素的属性 default-init // 是否开启懒加载.默认为 false default-dependency ...
- Django 载入静态文件地址
1,Django框架中有专门存放静态文件的目录. 项目中的CSS.图片.js都是静态文件 配置静态文件 在settings 文件中定义静态内容 2,这些静态文件,他们统一存放在项目目录,templat ...
- 【Mybatis】MyBatis对表执行CRUD操作(三)
本例在[Mybatis]MyBatis配置文件的使用(二)基础上继续学习对表执行CRUD操作 使用MyBatis对表执行CRUD操作 1.定义sql映射xml文件(EmployeeMapper.xml ...
- 在datasnap 中使用unidac 访问数据(服务器端)
从delphi 6 开始,datasnap 作为delphi 自带的多层框架,一直更新到最新的delphi 10.3 .同时逐步增加了很多新的功能 ,比如支持REST 调用,支持 IIS ,apach ...