澳门十大赌场最新排名 > 澳门十大赌场 > 0详细安装步骤

原标题:0详细安装步骤

浏览次数:145 时间:2019-07-16

  • 1、备份服务器上MySQL数据库

一、数据库的基本概念

昨天一台SQL Server 2008R2的数据库在凌晨5点多抛出下面告警信息:

        1.1  常用的关系型数据库

                       数据库(Database)是按照数据结构来组织、存储和管理数据的仓库。

 

[root@localhost ] # mysqldump -h localhost -u root -proot --databases Surpass --routines > /home/SQLBackup/Surpassme_20180801.sql

        1.2  sql语言

     SQL是Structured Query Language(结构化查询语言)的缩写。SQL是专为数据库而建立的操作命令集。SQL功能强大、简单易学、使用方便,已经成为了数据库操作的基础,并且现在几乎所有的关系型数据库均支持SQL。

> data-wiz-span="data-wiz-span" style="color: #ff0000"> 

> data-wiz-span="data-wiz-span" style="color: #ff0000">特点

     非过程性语言。一条语句一个结果。多条语句之间没有影响。每一条SQL执行完都会有一个具体的结果出现。

 

style="font-size: 1.167rem">SQL是用来操作关系数据库的语言,具有查询、操纵、定义和控制关系型数据库的四方面功能

 

 The log scan number (620023:3702:1) passed to log scan in database 'xxxx' is not valid. This error may indicate data corruption or that the log file (.ldf) does not match the data file (.mdf). If this error occurred during replication, re-create the publication. Otherwise, restore from backup if the problem results in a failure during startup.

  • 2、查看备份后的SQL脚本

        1.3  sql分类

style="font-size: 1.167rem; color: #ff0000">DDL (数据定义语言)

style="font-size: 1.167rem">数据定义语言 - Data Definition Language

style="font-size: 1.167rem">用来定义数据库的对象,如数据表、视图、索引等

style="font-size: 1.167rem">create drop alter truncate

 

style="font-size: 1.167rem; color: #ff0000">DML (数据操纵语言)

style="font-size: 1.167rem">数据处理语言 - Data Manipulation Language

style="font-size: 1.167rem">在数据库表中更新,增加和删除记录

如 update, insert, delete 不包含查询

 

style="font-size: 1.167rem; color: #ff0000">DCL (数据控制语言)

style="font-size: 1.167rem">数据控制语言 – Data Control Language

style="font-size: 1.167rem">指用于设置用户权限和控制事务语句

style="font-size: 1.167rem">如grant,revoke,if…else,while,begin transaction

 

style="font-size: 1.167rem"> > > style="color: #ff0000">DQL (数据查询语言)(★★★★★)

style="font-size: 1.167rem">数据查询语言 – Data Query Language

style="font-size: 1.167rem">数据表记录的查询。

style="font-size: 1.167rem">select

 

二、对数据库进行操作的语句

 

1.1 数据库中默认自带有4个库:

        style="background-color: #ffd700">1.information_schema 数据库:

    其中保存着关于MySQL服务器所维护的所有其他数据库的信息。如数据库名,数据库的表,表栏的数据的表,表栏的数据类型与访问权限等。

      style="background-color: #ffd700">   2.performance_schema 数据库:

style="font-size: 1.167rem">存储引擎:命名PERFORMANCE_SCHEMA,主要用于手机数据库服务器性能参数。

        style="background-color: #ffd700">3.mysql 数据库:

        mysql库是系统库,里面保存有账户信息,权限信息,存储过程,event,时区等信息

      style="background-color: #ffd700">  4.test 数据库:

style="font-size: 1.167rem">这个是安装时候创建的一个测试数据库,和它的名字一样,是一个完全的空数据库,没有任何表,可以删除。

 

1.2 查看所有数据库

style="font-size: 1.167rem; background-color: #ffd700">1.1 查询当前所有的数据库

show databases;

style="font-size: 1.167rem; background-color: #ffd700">1.2 查看当前数据的创建方式:查看数据库的编码表

show create database 库名;

style="font-size: 1.167rem; background-color: #ffd700">1.3 创建数据库

create database 数据库名: 由于创建数据库时没有指定编码表,因此会使用安装数据库时默认的编码表

create database 数据库名 character set 编码表名;创建数据库会使用指定的编码表

style="font-size: 1.167rem; background-color: #ffd700">1.4 删除数据库

drop database 数据库名;

style="font-size: 1.167rem; background-color: #ffd700">1.5 修改数据库编码集

alter database 数据库名称 character set 字符集;

 

1.3 数据表结构的sql语句

        1.1 数据表的创建语句

        create table 表名(         

style="font-size: 1.167rem"> 列名 数据类型,          

style="font-size: 1.167rem"> 列名 数据类型,

style="font-size: 1.167rem"> ……

style="font-size: 1.167rem"> 列名 数据类型 (最后一个列不需要逗号)

        );

style="font-size: 1.167rem; background-color: #ffd700">1.2 查看表

       show tables : 查看该数据库的所有的表

                show create table 表名 :查看建表语句以及字符集

                desc emp 查看表的详细信息

                show columns from emp ;查看表的列信息

1.4 约束

        1.1 主键约束

                primary key

                varchar 类型的主键不可以自增长.

                示例:

                        【示例】

style="font-size: 1.167rem">create table 表名 (

style="font-size: 1.167rem"> id int primary key auto_increment,

style="font-size: 1.167rem"> name varchar(20),

style="font-size: 1.167rem"> ………….

style="font-size: 1.167rem">);

          1.2 唯一约束

                unique 内容不允许重复,可以为null(null不算重复)。 

一个表里可以添加多个唯一约束。

style="font-size: 1.167rem">【示例】

style="font-size: 1.167rem">create table 表名 (

 id int primary key auto_increment,

style="font-size: 1.167rem"> name varchar(20) unique,

style="font-size: 1.167rem"> ………….

style="font-size: 1.167rem">);

style="font-size: 1.167rem">唯一约束和主键约束的区别  

style="font-size: 1.167rem">1、唯一约束可以是空(null)。 但是主键约束不能为空

style="font-size: 1.167rem">2、一张表中只能有一个主键,但是唯一约束可以有多个

          1.3 非空约束

        not null 不允许为空 表示该列的内容 不允许为空。

style="font-size: 1.167rem">约束的目的。

style="font-size: 1.167rem">目的:保证数据的正确性。

style="font-size: 1.167rem">约束列。限制列的内容。

1.5  数据表结构的修改

        1.修改数据表

                可以对表名、表中的列名、列的类型、列的约束进行增删改

                语法 :alter table 表名  add/drop/modify  改名  类型长度  约束;

         2. 修改现有列的类型,长度和约束 用modify

       

  1. 修改现有列名称

                    语法 alter table 表名 change 旧列名 新列名 类型(长度) 约束;

·        4. 删除现有列

                    语法 alter table 表名 drop 列名;

          5. 修改表名 

                    语法 :rename table 旧表名 to 新表名

          6. 修改表的字符集 

                    语法 : alter table 表名 character set 编码集;

1.6 数据表的删除

         语法 : drop table 表名:

 

 

[root@localhost ] # du -sh /home/SQLBackup/Surpassme_20180801.sql
200M Surpassme_20180801.sql

三、数据记录的增删改

    

       在java代码中对数据库操作最频繁的就是对表中数据的CRUD操作:create read / retrive update delete

数据记录存储位置

            

                    增:  语法:insert into 表名 (列名,列名,列名。。。) values( 值,值,值。。。);

                    改:update 表名 set 列名 = 值 , 列名 = 值 .. . [where 条件语句];            notes:如果不加条件 则修改整列

                    删:delete :delete from 表名 [where 条件语句]                       

                             notes:如果没有where 删除表中所有的记录    delete 删除的是行

                                          truncate table 表名 是删除一个表,之后在根据你 的表结构在给你创建一张新表

 

 

 

 

 

 

<wiz_tmp_tag id="wiz-table-range-border" contenteditable="false" style="display: none;">

 

 

 

 

来自为知笔记(Wiz)

   乍一看,还以为数据库损坏了(data corruption),但是在做完DBCC CHECKDB后,发现其实数据库其实是完好无损的。那么肯定是跟Replication有关。但是在搜索了相关资料,仅仅在The process could not execute ‘sp_repldone/sp_replcounters” 这篇博客中找到了类似错误的资料:

  • 3、查询服务器安装的MySQL

 

Common Causes

 

  • The last LSN in Transaction Log is less than what the LSN Log Reader is trying to find. An old backup may have been restored on top of Published Database. After the restore, the new Transaction Log doesn't contain the data now distributor & subscriber(s) have.

  • Database corruption.

 

[root@localhost ] # rpm -qa | grep -i mysql
  MySQL-client-5.6.38-1.el6.x86_64
  MySQL-server-5.6.38-1.el6.x86_64
  MySQL-devel-5.6.38-1.el6.x86_64
How to fix this

 

  • Ensure database consistency by running DBCC CHECKDB on the database. 

  • If an old backup was restored on top of published database then use sp_replrestart

  • If going back to the most recent transaction log backup is not an option then execute sp_replrestart  on publisher in published database. This stored procedure is used when the highest log sequence number (LSN) value at the Distributor does match the highest LSN value at the Publisher.

  • This stored procedure will insert compensating LSNs (No Operation) in the publisher database log file till one the compensating LSN becomes more than the highest distributed LSN in distribution database for this published database. After this it inserts this new high LSN in the msrepl_transactions table in the distribution database and executes sp_repldone on published database to update the internal structures to mark a new starting point for log reader agent.

  • Ensure that the log reader agent is stopped and there is no incoming transactions on the published database, when this SP is executed.

  • Since transactions may have been lost, we recommend to reinitialize the subscriber(s) and/or recreate publication/subscription(s).  For large databases consider using “Initialize from Backup” as discussed in SQL Book Online.

 

但是在这个案例当中, 数据库既没有损坏,也没有还原过。 只能是Replication出现了错误,但是在SQL Server的Replication中又没有找到相关错误信息,本身这个是AWS的DMS自动生成的Replication,很多内部信息不太清楚(例如,是否出现异常),官方也没有找到很详细的介绍这个错误的相关资料。在此记录一下。

 

 

 

 

参考资料:

 

  • 4、停止MySQL服务
[root@localhost ] # service mysql stop
  • 5、卸载已经安装的MySQL
[root@localhost ] # yum -y remove MySQL-*
  • 6、查找遗留的MySQL文件
[root@localhost ] # find / -name mysql
/var/lib/mysql
/usr/lib64/mysql
  • 7、/var/lib/mysql为本次MySQL的data目录,建议安装先备份

本文由澳门十大赌场最新排名发布于澳门十大赌场,转载请注明出处:0详细安装步骤

关键词:

上一篇:我的MYSQL学习心得,从指定字符串中获取数字的方

下一篇:没有了