`
brandNewUser
  • 浏览: 446085 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

这段时间使用MySQL的一些记录

阅读更多

自从Fedora19之后,Linux上的MySQL就被MariaDB所取代,这段文字见如下引用:

 

MySQL was replaced by MariaDB since Fedora 19 (http://fedoraproject.org/wiki/Features/ReplaceMySQLwithMariaDB).

To install MariaDB Server you have to execute the following command:

yum install mariadb mariadb-server

To start MariaDB on Fedora 20, execute the following command:

systemctl start mariadb.service

To autostart MariaDB on Fedora 20, execute the following command:

systemctl enable mariadb.service

After you started MariaDB (do this only once), execute the following command:

/usr/bin/mysql_secure_installation

This command will ask you some inputs to set root password, remove anonymous users, disallow root login remotely, remove test database and reload privilege tables.

 

 

基本安装和启动

 

 

从上面的信息可以看出,基本上通过yum install安装的MariaDB,命令与MySQL相关命令基本差不多。

 

我们可以通过命令行连接MariaDB:

 

mysql -u 用户名 -h 地址 -p,输入密码即可

show databases 显示出所有mysql中的数据库;

show tables;

 

也可以在Mac下使用客户端,这里推荐一个比较好用的客户端(仅Mac下):Sequel Pro

 

如果新建的数据表都是GBK(或latin,有些某人配置为latin的),通过下面的命令可以修改其字符集为"UTF-8":

 

ALTER DATABASE diablo DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci

 

创建用户,以及分配对应权限的命令格式如下:

 

CREATE USER username IDENTIFIED BY 'password';
CREATE DATABASE databasename;
CREATE DATABASE IF NOT EXISTS yourdbname DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
GRANT ALL ON databasename.* TO 'username'@‘%';
flush privileges;

 

使用组合mysqldump以及mysql命令,可以一次性地将数据进行备份
mysqldump db_test -u root -ppassword --add-drop-table | mysql db_for_test -u root -ppassword
 
以上是在同一台MySQL服务器上复制数据库的方法。如果要复制到远程另一台MySQL服务器上,可以使用mysql的“ -h 主机名/ip”参数。前提是mysql允许远程连接,且远程复制的传输效率和时间可以接受。
 
#mysqldump db1 -uroot -ppassword --add-drop-table | mysql -h 192.168.1.22 newdb -uroot -ppassword 
 

Linux启动和停止Mysql服务

 

 

采用netstat -nlp查看mysql服务的状态

 

命令行方式:

        开启  ./mysqld_safe &
        关闭  mysqladmin -uroot shutdown

 

rpm方式安装的:

        开启  service mysql start
        关闭  service mysql stop

 

在命令行启动mysql时,如不加"--console",启动、关闭信息不在界面中显示,而是记录在安装目录下的data目录里,文件名一般是hostname.err,通过此文件查看mysql的控制台信息。
 

使用MySQL处理表连接时的错误

 
使用inner join两张数据库表时,出现连接错误:
 
select * from campaign_message m inner join spread_student s on m.phone=s.phone;


Illegal mix of collations (utf8_general_ci,IMPLICIT) and (utf8_unicode_ci,IMPLICIT) for operation '='
在StackOverFlow网站上,查看其出现的问题:
 
 
标题为:Illegal mix of collations (utf8_general_ci,IMPLICIT) and (utf8_unicode_ci,IMPLICIT) for operation '=' in MySQL Stored Procedure。
 
某些人给出的答案为:
 

so the answer is simple. It seems you missed the change as stated by MKJ ^^ but the actual syntax to alter your tables looks like this.

alter table `dbname`.`tablename` convert to character set utf8 collate utf8_general_ci;


 
Applied as an individual script or at the end of your create table statement you should be able to relate all related tables back to the same charset
 
 
执行语句完成后,就可以使得两张数据表能够正常执行连接了。
 
之前出现的问题就是,有一张数据表声明的时候没有按照正常的character set,而是采用了其他的字符集。 

MySQL处理表锁死的状态

 
同事在处理mysql查询的时候,遇到问题,针对其中的某张表查询不能正常执行(甚至于最简单的select也不行),而其他表查询都可以。
 
从网上找到的一些资料,可以通过命令行的方式查找到具体线程:
 
SHOW PROCESSLIST显示哪些线程正在运行。您也可以使用mysqladmin processlist语句得到此信息。如果您有SUPER权限,您可以看到所有线程。否则,您只能看到您自己的线程(也就是,与您正在使用的MySQL账户相关的线程)。如果有线程在update或者insert 某个表,此时进程的status为updating 或者 sending data。
 
如果您得到“too many connections”错误信息,并且想要了解正在发生的情况,本语句是非常有用的。MySQL保留一个额外的连接,让拥有SUPER权限的账户使用,以确保管理员能够随时连接和检查系统(假设您没有把此权限给予所有的用户)。
 
下面就是我们执行了该命令出现的表结构:
 


 
 
其中的state显示出了等待的一些基本锁,以及这些锁的基本状态。
 

其中的第一个字段为线程id,可以对线程id执行kill操作,手动执行所有需要被kill掉的线程,就可以保证在查询过程中不会出现死锁问题。 

 

 

  • 大小: 159.9 KB
分享到:
评论

相关推荐

    MySql 按时间段查询数据方法(实例说明)

    oready网站的制作已经接近尾声。今天打算完成统计模块功能,所以查找了下mysql按时间段查询数据的语句,记录一下。

    mysql数据库my.cnf配置文件

    # 禁止MySQL对外部连接进行DNS解析,使用这一选项可以消除MySQL进行DNS解析的时间。但需要注意,如果开启该选项, # 则所有远程主机连接授权都要使用IP地址方式,否则MySQL将无法正常处理连接请求 #skip-networking ...

    MySql查询时间段的方法

    无论怎么存储,在实际应用中,很可能会出现包含“时间段”类型的查询,比如一个访问记录数据库,需要统计每天的访问数量,这个每天就是一个时间段。下面介绍MySql查询时间段的两种常见方法,其他

    功能齐全的php5数据库mysql操作类(修正版)

    自己用php5写的mysql数据库操作类,功能很齐全,前段时间上传了一次,但是发现了一点错误,现在修正过来了,还加了一个管理员判断的功能,自己看吧,反正很好用,我一直在用的。传上来赚点分数,保证你的分花的不亏...

    MySQL服务器优化细解

    网上有很多的文章教怎么配置MySQL服务器,但考虑到服务器硬件配置的不同,具体应用的差别,那些文章的做法只能作为初步设置参考,我们需要根据自己的情况进行配置优化,好的做法是MySQL服务器稳定运行了一段时间后...

    【最新版】navicat150_mysql_en.dmg【亲测可用】最好的MySQL / MariaDB管理和开发工具

    通过获取关键字建议并从编码中去除重复内容,使用“代码完成”和可自定义的代码段快速进行编码。 使用我们专业的对象设计器创建,修改和管理所有数据库对象。使用复杂的数据库设计和建模工具将数据库转换为图形表示...

    mss2sql_v5-3.zip SQL Server转换为MySQL工具

    然后就是一段时间的等待 这个表里面的数据并不多,花费时间稍长,大概有10分钟,如果表大的话,可能用程序来转换会快一些,有方便的办法也请告之为谢 下面就是转换成功后的表格了,里面的数据OK,中文也没有什么问题.

    mysql数据库的基本操作语法

    MySQL可以使用check约束,但check约束对数据验证没有任何作用。 create table temp( id int auto_increment, name varchar(20), age int, primary key(id), /*check约束*/ check(age > 20) ); 上面check约束要求age...

    基于SSM+Mysql的高校自习室预约系统.zip

    学生还可以查看自己的预约记录和取消已预约的时间段。同时,管理员可以在系统中管理自习室信息,设置预约规则和时间段,以及对预约记录进行管理和统计分析。 系统的后端采用SSM框架,这是一个流行的Java Web开发...

    Mysql数据库课程设计作业-宠物预定

    这是使用Mysql数据库实现的宠物预定课程作业,包含数据库脚本、要求及说明。 1。使用alter table语句,为这些表定义合理的键和外键约束,并限制CostPerDay的值介于5和20之间。不要添加任何新列。 2。为表预订创建SQL...

    Python实现 多进程导入CSV数据到 MySQL

    前段时间帮同事处理了一个把 CSV 数据导入到 MySQL 的需求。两个很大的 CSV 文件, 分别有 3GB、2100 万条记录和 7GB、3500 万条记录。对于这个量级的数据,用简单的单进程/单线程导入 会耗时很久,最终用了多进程...

    基于Python(Django)+MySQL实现(Web)书店出租和零售管理系统【100011356】

    该系统实现了对客户信息、书刊信息的管理,以及借阅、归还、零售等行为的记录与管理。 本系统采用了 B/S 架构,前端采用 ...图书销售情况查询:提供图书在一段时间内的销售情况以及借阅情况,支持按照指定时间进行统计

    小记mysql备份同库中一张表的历史记录

    mysql备份同库中一张表的...把这个表某段时间的数据备份到备份表中。核心就是个简单的sql。 下面以新表(test_table_new)和旧表(test_table_old)为例 CREATE TABLE IF NOT EXISTS `test_table_new` ( `id` int(11)

    C#按指定时间段查询数据

    摘要:C#源码,数据库应用,SQL查询实例 查询指定时间段的数据库数据,基于visual C#源码实现,检索数据库中符合特定时间段内的所有记录,这是一个经常被用到的实用技巧,按时间查询不管是在C#,或是在VB/VC等程序开发...

    基于SSM框架+mysql的电子商城web系统项目源码+项目说明.zip

    在这里感谢黑马程序员的视频资料,感谢前一段时间自己的努力! 感觉不错就给我来个`star`吧!谢谢啦~ ##### 资源下载: - [项目视频](https://pan.baidu.com/s/1rnmrioE7HSEaxuElKpjLlA) 提取码:t7hv ...

    基于SSM+Mysql的高校在线请假与审批系统.zip

    学生可以通过系统提交请假申请,选择请假类型、时间段和原因,并上传相关证明材料。教职工可以在系统中审批请假申请,查看申请人的请假历史和详情,并进行批准或驳回操作。系统还提供请假记录的查询和统计功能,方便...

    unforced:将 Salesforce 对象和记录备份到 MySQL 数据库中。 http的分叉

    Unforced 是一个 PHP 项目,可帮助您将 Salesforce 对象和记录备份到 MySQL 数据库中。 最初的代码由 pluke 于 2009 年发布,可在。 该代码基于 Mike Simond 来自他出色的网站的代码。 他好心地说,我们可以在开源...

    java+servlet+mysql企业员工工资管理系统

    4. 请假管理:员工可以通过系统提交请假申请,并附上请假原因和时间段。管理人员可以审批请假申请,并在系统中记录和跟踪所有请假事务,确保员工请假流程的规范化和透明化。 5. 个人薪资管理:每位员工都可以登录...

    weightmanager:Weight Manager是我开发的用于跟踪体重和BMI(身体质量指数)的应用程序,因为我体重超标。 它使用一个MySQL数据库来跟踪我的体重记录。 该应用程序显示了一段时间内所有历史权重的图

    它使用一个MySQL数据库来跟踪我的体重记录。 该应用程序显示了所有历史权重随时间变化的图。 我做这个项目是为了使我的编码技巧更加敏锐,并且因​​为我需要一种跟踪减肥的方法! 使用的技术: Python 3 MySQL 8.0...

Global site tag (gtag.js) - Google Analytics