mysql数据库

MySql批量数据导入Load data infile解决方案

∥☆過路亽.° 提交于 2020-03-23 12:28:15
3 月,跳不动了?>>> 有时候我们需要将大量数据批量写入数据库,直接使用程序语言和Sql写入往往很耗时间,其中有一种方案就是使用MySql Load data infile导入文件的形式导入数据,这样可大大缩短数据导入时间。 假如是从MySql客户端调用,将客户端的文件导入,则需要使用 load local data infile. LOAD DATA INFILE 语句以很高的速度从一个文本文件中读取行到一个表中。文件名必须是一个文字字符串。 1,开启load local data infile. 假如是 Linux 下编译安装, 如果使用源码编译的 MySQL ,在configure的时候,需要添加参数:--enable-local-infile 客户端和服务器端都需要,否则不能使用local参数。 ./configure --prefix=/usr/local/mysql --enable-local-infile make install 若是其它系统,可在配置文件中配置: 在MySql 配置文件My.ini文件中下面项中加入local-infile=1: add: [mysqld] local-infile=1 [mysql] local-infile=1 客户端和服务端度需要开启,对于客户端也可以在执行命中加上--local-infile=1 参数: mysql -

Python连接MYSQL数据库类

隐身守侯 提交于 2020-03-23 12:23:47
Python连接MYSQL数据库类 DBHelper.py: import pymysql import logging import sys from mySQL.db_config import db_config # 加入日志 # 获取logger实例 logger = logging.getLogger("baseSpider") # 指定输出格式 formatter = logging.Formatter('%(asctime)s\ %(levelname)-8s:%(message)s') # 文件日志 file_handler = logging.FileHandler("operation_database.log") file_handler.setFormatter(formatter) # 控制台日志 console_handler = logging.StreamHandler(sys.stdout) console_handler.setFormatter(formatter) # 为logge添加具体的日志处理器 logger.addHandler(file_handler) logger.addHandler(console_handler) logger.setLevel(logging.INFO) class DBHelper(): # 构造函数

002. Centos7安装mysql5.5.37

一笑奈何 提交于 2020-03-23 12:13:26
下载cmake-2.8.12.2.tar.gz, 下载地址: https://pan.baidu.com/s/1qYtpX7m 下载mysql-5.5.37.tar.gz, 下载地址: http://pan.baidu.com/s/1miFcNP2 下载ncurses-5.9.tar.gz, 下载地址: http://pan.baidu.com/s/1kVDIXW7 (百度网盘的连接地址使用wget下载不了) 4. 将上面三个包, 传到服务器上, 并解压 [root@iZ25bdzgev8Z mysql-5.5.37]# tar xvf mysql-5.5.37.tar.gz 5. 进入cmake-2.8.12.2目录(如有报错请看文末) [root@iZ25bdzgev8Z cmake-2.8.12.2]# ./configure [root@iZ25bdzgev8Z cmake-2.8.12.2]# make && make install 6. 进入mysql-5.5.37目录 [root@iZ25bdzgev8Z ~]# cd mysql-5.5.37 [root@iZ25bdzgev8Z mysql-5.5.37]# cmake ./ (如有报错请看文末) 7. 解决完上面的报错后, 继续执行(如果没有报错, 此步骤可直接跳过) [root@iZ25bdzgev8Z

mysql高可用之MHA+半同步复制

白昼怎懂夜的黑 提交于 2020-03-22 23:43:38
1,MHA概述 MHA目前在mysql高可用方面是一个相对成熟的解决方案,它由日本DeNA公司youshimaton(现就职于Facebook公司)开发,是一套优秀的作为mysql高可用性环境下故障切换和主从提升的高可用软件。在mysql故障切换过程中,MHA能做到在0-30秒之内自动完成数据库的故障切换操作,并且在进行故障切换操作的过程中,MHA能在最大程度上保证数据的一致性,以达到真正意义上的高可用,MHA里由两个角色一个是MHA Node(数据节点),另一个是MHA Manager(管理节点)。MHA Manager可以单独部署在一台读立的服务器上管理多个master-slave集群,也可以部署在一台slave节点上。 MHA Node运行在每台mysql服务器上,MHA Manager会定时探测集群中的master节点,当master出现故障时,它可以自动将最新数据的slave提升为新的master,然后将所有其他的slave重新指向新的master。整个故障转移过程中对应用程序完全透明。 在MHA自动故障切换过程中,MHA试图从宕机的主服务器上保存二进制日志,最大程度地保证数据的不丢失,但这并不总是可行的。例如,如果主服务器硬件故障或无法通过ssh访问,MHA没法保存二进制日志,只进行故障转移而丢失了最新的数据。使用mysql 5.5的半同步复制

软工第五周:安卓连接MySql

拜拜、爱过 提交于 2020-03-22 20:36:26
这周的学习内容为移动端连接ySql数据库。 一、实现方法: 1.导入连接数据库所使用的jre包 2.在主布局文件中添加 <uses-permission android:name="android.permission.INTERNET"/>获得访问网络的权限 3.新建一个java文件实现数据库的连接 package com.example.myapplication; import android.util.Log; import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.util.ArrayList; import java.util.List; /** * 数据库工具类:连接数据库用、获取数据库数据用 * 相关操作数据库的方法均可写在该类 */ public class db { private static String driver = "com.mysql.jdbc.Driver"; // MySql驱动 // private static String url = "jdbc:mysql:/

Mysql导出存储过程

最后都变了- 提交于 2020-03-22 15:50:28
转载:https://www.cnblogs.com/yuepeng/archive/2010/09/21/1832775.html Mysql导出存储过程 在部署某学院的网站时,发现一个错误: 1 FUNCTION config_get does not exist. 找到代码一看,是conn.prepareCall("{call config_get(?,?,?)}");这一句出了错。上网查了查,这是在调用存储过程, 那么config_get就是存储过程名。到数据库里用show procedure status;看了看,一个存储过程也没有。也就是导数据库时没有导存储过程。 下面是导出存储过程的代码 1 # mysqldump -u 数据库用户名 -p -n -t -d -R 数据库名 > 文件名 其中,-d 表示--no-create-db, -n表示--no-data, -t表示--no-create-info, -R表示导出function和procedure。所以上述代码表示仅仅导出函数和存储过程,不导出表结构和数据。但是,这样导出的内容里,包含了trigger。再往mysql中导入时就会出问题,错误如下: ERROR 1235 (42000) at line **: This version of MySQL doesn't yet support ‘multiple

MySQL Day1

为君一笑 提交于 2020-03-22 15:11:39
MySQL安装 推荐使用通用二进制包安装,下载通用二进制包,解压后会有INSTALL-BINARY文件 通过查看文件中的安装示例步骤,完成数据库的初级安装 注意:在数据块初始化时最好提前准备好my.cnf文件并指定 groupadd mysql useradd -r -g mysql -s /bin/false mysql cd /usr/local tar zxvf /path/to/mysql-VERSION-OS.tar.gz ln -s full-path-to-mysql-VERSION-OS mysql cd mysql mkdir mysql-files chmod 770 mysql-files chown -R mysql . chgrp -R mysql . bin/mysql_install_db --user=mysql # Before MySQL 5.7.6 bin/mysqld --initialize --user=mysql # MySQL 5.7.6 and up bin/mysql_ssl_rsa_setup # MySQL 5.7.6 and up chown -R root . chown -R mysql data mysql-files bin/mysqld_safe --user=mysql & cp support-files

MySQL数据备份及还原(一)

谁说我不能喝 提交于 2020-03-22 10:58:04
关于删库跑路的事故现在已经屡见不鲜了,数据备份的必要性是企业数据管理极其重要的一项工作。关于数据备份、恢复也有很多场景及方法,本系列也会将主要的几种工具通过案例进行演示。 本系列将从逻辑备份及恢复开始讲起,逻辑备份的工具主要有mysqldump/mydumper等其中mydumper可以指定多线程工作,本文介绍的是mysqldump。 1. mysqldump 备份 mysqldump是MySQL数据库自带的逻辑备份工具,属于热备工具。它的备份结果是根据设置的参数将数据库中的信息通过生成创建库、表等对象以及对应表的insert语句组成。 mysqldump 参数选项特别多,可以通过mysqldump --help 查看对应的参数及说明() [root@testdb ~]# mysqldump --helpmysqldump Ver 10.13 Distrib 5.7.25-28, for Linux (x86_64)Copyright (c) 2009-2019 Percona LLC and/or its affiliatesCopyright (c) 2000, 2019, Oracle and/or its affiliates. All rights reserved.Oracle is a registered trademark of Oracle

Python操作Mysql中文乱码问题

孤者浪人 提交于 2020-03-22 07:32:53
     Python操作MySQL需要安装Python-MySQL 可以从网上搜索一下,和一般的Python包一样安装 安装好之后,模块名字叫做MySQLdb ,在Window和Linux环境下都可以使用 用下面几个措施,保证MySQL的输出没有乱麻: 1 Python 文件设置编码 utf-8 (文件前面加上 #encoding=utf-8) 2 MySQL 数据库 charset=utf-8 3 Python 连接 MySQL 是加上参数 charset=utf8 4 设置 Python 的默认编码为 utf-8 (sys.setdefaultencoding(utf-8) #encoding=utf-8 import sys import MySQLdb reload(sys) sys.setdefaultencoding('utf-8') db=MySQLdb.connect(user='root',charset='utf8') cur=db.cursor() cur.execute('use mydb') cur.execute('select * from mytb limit 100') f=file("/home/user/work/tem.txt",'w') for i in cur.fetchall(): f.write(str(i)) f.write("

Mysql Replication配置

好久不见. 提交于 2020-03-22 02:49:05
使用场景:mysql的实时备份或者读写分离。 环境: vmware虚拟机,并且安装了linux系统(我用的是centos7),linux上安装了mysql 第一台mysql安装好了之后,将当前linux系统克隆一份。 我的两个linux系统的IP地址分别是128,129; 128为master,129为slave; 两台服务器上的mysql配置当前完全一样。 克隆过来之后,需要把另一个mysql的(/ect/my.cnf)server_id改掉。 这里我把128上的mysql的server_id改成128; 129机子上的mysql的server_id改成129; 修改好配置文件后,启动两台机子上的mysql 启动: /etc/init.d/mysqld start 重启: /etc/init.d/mysqld restart 锁定master flush tables with read lock; 查看master状态 show master status 记住这个信息,后面配置slave信息的时候,会用到; 配置slave 登录129服务器的mysql mysql -uroot -pgys 关闭slave 给slave配置master 这里的master_log_file='guoyansi128.000004',master_log_pos=120