mysql把一个数据库中的数据复制到另一个数据库中的表 2个表结构相同

mysql把一个数据库中的数据复制到另一个数据库中的表 2个表结构相同,第1张

1、使用软件Navicat就可迁移复制数据库,打开Navicat,右键点击左边空白的地方,点击New Connection下的MySQL,创建一个服务器的连接,下面将演示把本地的数据迁移到服务器:

2、在d出的创建新连接的窗口里,输入服务器的IP,数据库账号,密码等,然后就可以连接数据库了:

3、创建好后们打开本地的数据库,点击“Data Transfer”(数据传输),接着d出新的界面:

4、新窗口中在左边选择本地数据库的库,和需要转移的表,可以选择一个,或多个表:

5、然后在右边的目标里,选择服务器的连接,然后选择服务器上的数据库:

6、选择完成后,就开始进行数据转移了,数据量不是很大的,很快就会转移完成的。以上就是mysql中数据复制到另一个数据库的方法:

caching_sha2_password认证插件提供更多的密码加密方式,并且在加密方面具有更好的表现,目前MySQL 8.0选用caching_sha2_password作为默认的认证插件,MySQL 5.7的认证插件是MySQL_native_password。如果客户端版本过低,会造成无法识别MySQL 8.0的加密认证方式,最终导致连接问题。

MySQL存储引擎现在负责提供自己的分区处理程序,而MySQL服务器不再提供通用分区支持,InnoDB和NDB是唯一提供MySQL 8.0支持的本地分区处理程序的存储引擎。 如果分区表用的是别的存储引擎,存储引擎必须进行修改。要么将其转换为InnoDB或NDB,要么删除其分区。通过MySQLdump从5.7获取的备份文件,在导入到8.0环境前,需要确保创建分区表语句中指定的存储引擎必须支持分区,否则会报错。

MySQL 8.0的默认字符集utf8mb4,可能会导致之前数据的字符集跟新建对象的字符集不一致,为了避免新旧对象字符集不一致的情况,可以在配置文件将字符集和校验规则设置为旧版本的字符集和校验规则。

MySQL 8.0启动使用的lower_case_table_names值必须跟初始化时使用的一致。使用不同的设置重新启动服务器会引入与标识符的排序和比较方式不一致的问题。

< lower_case_table_names >

https://dev.mysql.com/doc/refman/8.0/en/server-systemvariables.html#sysvar_lower_case_table_names

要避免MySQL 8.0上的启动失败,MySQL配置文件中的sql_mode系统变量不能包含NO_AUTO_CREATE_USER。

从MySQL 5.7.24和MySQL 8.0.13开始,MySQLdump从存储程序定义中删除了NO_AUTO_CREATE_USER。必须手动修改使用早期版本的MySQLdump创建的转储文件,以删除NO_AUTO_CREATE_USER。

在MySQL 8.0.11中,删除了这些不推荐使用的兼容性SQL Mode:DB2,MAXDB,MSSQL,MySQL323,MySQL40,ORACLE,POSTGRESQL,NO_FIELD_OPTIONS,NO_KEY_OPTIONS,NO_TABLE_OPTIONS。从5.7到8.0的复制场景中,如果语句使用到废弃的SQL Mode会导致复制异常。

在执行到MySQL 8.0.3或更高版本的in-place升级时,BACKUP_ADMIN权限自动授予具有RELOAD权限的用户。

本文对MySQL 5.7到MySQL 8.0的升级过程中出现部分易出现问题进行整理:升级对MySQL版本的要求、升级都做了哪些内容、数据库升级做了哪些步骤以及注意事项,希望对大家版本升级有帮助。

本来 MariaDB 的描绘初衷之一即是彻底兼容 MySQL,包含 API 和客户端协议,使之能轻松变成 MySQL 的代替品,所以由 MySQL 搬迁到

MariaDB 基本上能够称之为“晋级”,就如同软件晋级版别一样。MariaDB 的技能文档上是这样写的:

若是是一样的根底版别(如

5.5),能够直接卸载 MySQL 然后装置

MariaDB,这样就能够用了。乃至不需求备份然后复原数据库。当然,稳妥起见,晋级前将一切的数据库都备份一下仍是十分有必要的,以防万一。

若是

MariaDB 的主版别高,在通过上面的卸载 MySQL 再装置 MariaDB *** 作之后,需求运用 mysql_upgrade

晋级一下。是的,乃至连命令行都与运用 MySQL 的时分一样。

一切原先的客户端和连接器(PHP、Perl、Python、Java

等)都不需求做任何改动就能正常作业,由于 MariaDB 与 MySQL 运用的是一样的客户端协议,而且客户端库文件也是二进制兼容的。

上面用 *

来匹配删去一切 mysql 数据包(包含因包依靠而删去的别的包,如 postfix)。由于直接装置的时分会呈现抵触,例如:

file

/usr/share/mysql/ukrainian/errmsg.sys from install of

MariaDB-server-5.5.31-1.i686 conflicts with file from package

mysql-libs-5.5.32-1.el6.remi.i686

嗯,如同由于将 php-mysql 也给删去了(实际上这个不应删去的),所以

phpMyAdmin 也由于依靠联系而被删去了,我没仔细看。

所以最佳不要用通配符 *,而是选择性删去几个首要的,

# yum remove

mysql mysql-server mysql-libs

可是这个我没有再测验,由于后边有非常好的办法。

C. 然后装置 MARIADB 及相应

PHP 拓展。

也是指定几个首要的装置包,剩余的让 yum 自个进行依靠联系查看。

# yum install

MariaDB-server MariaDB-client php-mysql

或许不装置 MariaDB-server

而改为具有同步多主群集特性(synchronous multi-master cluster)的 MariaDB Galera Cluster:

# yum install MariaDB-Galera-server MariaDB-client galera

这里对比搞笑的是,没注意前面把

php-mysql 给卸载了,成果运转数据库之后拜访 WordPress,成果遭受下面的过错:

Your PHP installation appears

to be missing the MySQL extension which is required by WordPress.

D.

完结,修补

不论版别是不是晋级了,履行一下数据库晋级指令总没有害处:

# mysql_upgrade -p

看看数据库版别是不是晋级了:

# mysql -u root -p -e 'show global variables like

"version"'

Enter password:

+---------------+----------------+

| Variable_name | Value |

+---------------+----------------+

| version | 5.5.31-MariaDB |

+---------------+----------------+

将 MariaDB 参加随体系自发动列表,

# chkconfig --levels 345 mysql on

嗯,曾经

MySQL 的时分是 mysqld,现在是 mysql,就差了一个字母 d。

发动它,

# service mysql start

这个时分服务器上的网站大概现已能够正常作业了,拜访数据库没有疑问。

若是有必要,装置完 MariaDB 之后能够重新装置 postfix。若是发现

phpMyAdmin 提示无拜访权限了,那即是被卸载了,需求重新装置和装备 phpMyAdmin。

别的,由于之前进行了卸载 *** 作,所以本来的 MySQL

和 phpMyAdmin 的装备文件都被清除了,也需求重新装备。特别是 MySQL 的装备文件 /etc/my.cnf,由于 MariaDB

尽管创建了一个my.cnf.d 文件夹来存储自个的装备文件,可是它会首要加载 my.cnf,且本来 MySQL 的装备的 [mysqld]

那一节的内容仍是有用的。

3. 较好的晋级办法

仍是在上面介绍的体系装备下,先增加 MariaDB 装置源,然后直接履行体系晋级,

# yum

update --skip-broken

MariaDB 有关装置包会被装置,不需求的 MySQL

包将被卸载,而且晋级之后不需求对体系进行修补了。看看输出的前面一部分:

==============================================================================================================

Package Arch Version Repository Size

==============================================================================================================

Installing:

MariaDB-Galera-server i686 5.5.29-1 mariadb 19 M

replacing mysql.i686 5.5.21-1.el6.remi

replacing

mysql-server.i686 5.5.21-1.el6.remi

MariaDB-server i686 5.5.31-1 mariadb

32 M

replacing mysql-server.i686 5.5.21-1.el6.remi

MariaDB-shared i686 5.5.31-1 mariadb 1.0 M

replacing

mysql-libs.i686 5.5.21-1.el6.remi

kernel i686 2.6.32-358.11.1.el6

updates 24 M

libjpeg-turbo i686 1.2.1-1.el6 base 176 k

replacing

libjpeg.i686 6b-46.el6

Updating:

.........

到这里才感觉到 MariaDB

的描绘思维那个无缝代替 MySQL 不是噱头,而是实实在在的技能。所以我也就不急着给 VPS 晋级到 MariaDB 了,横竖过不了多久 CentOS

就会选用 MariaDB,到时分再自然而然地搬迁吧。转载


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/8565439.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-18
下一篇 2023-04-18

发表评论

登录后才能评论

评论列表(0条)

保存