MySQL 安装与使用方法的具体简介

MySQL 安装与使用方法的具体简介,第1张

MySQL 安装与使用 一 什么是 MySQL MySQL (发音为 My Ess Que Ell )是 Tcx 公司()开发的一个多人使用 多执行绪的 SQL 资料库 Server MySQL 主要的目标在快速 稳定和容易使用 MySQL 可在此 取得 二 MySQL 的安装 本文所使用的 MySQL 版本为 mysql tar gz(原始码档) 作业环境为 RedHat +CLE MySQL 预设情况下会安装至 /usr/local 目录下 不过为了日后移除方便 建议将 mysql 独立安装在 /usr/local/mysql 目录 底下为安装 MySQL 的步骤 取得 mysql tar gz 后 于 /usr/local 目录下解开 # cd /usr/local# tar zxvf mysql tar gz# cd mysql 设定 configure 安装选项 选择安装目录 (prefix)以及支援中文 Big 码(with charset=big ) # /configure prefix=/usr/local/mysql # with charset=big 开始编译并安装 # make# make install# scripts/mysql_install_db最后一个步骤是用来产生 MySQL grant tables(会建立一个 mysql 资料库和一些 tables 用来管理使用 MySQL 的授权资讯 也就是使用者有哪些使用资料库的权限) 三 启动 停止 MySQL 要启动 MySQL 的方法 (以本文将 MySQL 安装在 /usr/local/mysql 为例)# /usr/local/mysql/share/mysql server start注意在第一次执行前 须将 mysql server 设成可执行(chmod mysql server) 另外可将这行指令加在 /etc/rc d/rc local 档中 让 MySQL 在开机时自动启动 要停止 MySQL 的方法 # /usr/local/mysql/bin/mysqladmin shutdown如果你为 MySQL Administrator root 帐号(非作业系统的 root)设了密码 要停止 MySQL 则必须像下列这样做 MySQL 会询问你 root 的密码后才会执行 shutdown 的工作 # /usr/local/mysql/bin/mysqladmin u root p shutdown 四 管理与使用 MySQL 简介 在你开始前MySQL 提供了许多工具 (Client Tools)来与 MySQL 资料库 Server 连线 其中最主要的为 mysql 交谈式连线工具与 mysqladmin 公用程式 大部份时候使用者会用 mysql 来和资料库 Server 交谈 底下就以 mysql 连线工具来介绍如何维护与使用 MySQL (以本文安装为例 mysql 工具位于 /usr/local/mysql/bin/mysql) mysql 的使用语法如下 mysql [ u username] [ h host] [ p[password]] [dbname]MySQL 资料库有自己一套使用者帐号与权限管控方法 所以这边所指定的 username 与 password 是 MySQL 的使用者与密码 而不是作业系统的使用者与密码(当然任何使用者都能执行 mysql 然后以 MySQL 的任何帐号进入使用) 在你第一次安装好 MySQL 时 MySQL 的管理帐号为 root 没有设定密码 (非作业系统的 root) 所以在开始前 请先照下列步骤为 root 设好密码 使用 mysql 与 MySQL 资料库 Server 连线 # /usr/local/mysql/bin/mysql u root mysqlReading table information for pletion of table and column namesYou can turn off this feature to get a quicker startup with AWele to the MySQL monitor Commands end with or \g Your MySQL connection id is to server version: Type help for help mysql>在下了 mysql u root mysql 指令 指定以 root 帐号并开启 mysql 系统资料库 连线至 MySQL 后 会看到一些提示讯息与 mysql 工具的提示符号 以后大部份的工作皆在此提示符号下完成 更改 MySQL系统管理者 root 密码 mysql>update user set password=password( 新密码 ) where user= root Query OK rows affected ( sec)Rows matched: Changed: Warnings: mysql>FLUSH PRIVILEGESQuery OK rows affected ( sec)mysql>quitBye注意每个指令后要加上一个分号 才会让 mysql 开始执行 而第二道指令会让已载入记忆体的 mysql 系统资料库更新 最后离开 mysql 工具程式 在更新 root 密码后 日后要与 MySQL 连线的方法为 mysql u root p新密码或者是这样 让 mysql 询问 root 的密码 mysql u root p资料库维护接下来 我们以简单的通讯录资料库作为例子 来介绍如何用 mysql 工具程式来做资料库的维护(新增 授权 资料表维护等) 首先 以 MySQL root 帐号连线后建立一 addbook 资料库 # /usr/local/mysql/bin/mysql u root pEnter password:Wele to the MySQL monitor Commands end with or \g Your MySQL connection id is to server version: Type help for help mysql>create databae addbookQuery OK row affected ( sec)指定使用 addbook 资料库 并建立一个 friends 资料表 mysql>use addbookDatabase changedmysql>create table friends ( >name Char( ) >telphone VarChar( ) >icq Char( ) >address VarChar( ) >)Query OK rows affected ( sec)新增几笔资料 并查询看看 mysql>insert into friends values( >maa 台北县新庄市 >)Query OK row affected ( sec)mysql>insert into friends (name icq telphone address ) Values ( >cxlin 台北县 >)Query OK row affected ( sec)mysql>select * from friends+ + + + +| name | telphone | icq | address |+ + + + +| maa | | | 台北县新庄市 || cxlin | | | 台北县 |+ + + + + rows in set ( sec)第二个 insert 指令指定了资料栏位的插入顺序 用法较第一个为弹性 而第一个指令必须依资料表建立结构时的顺序插入资料 更新 删除资料表记录 mysql>update friends set address = 桃园县 where name = cxlin Query OK row affected ( sec)Rows matched: Changed: Warnings: mysql>select * from friends where name = cxlin + + + + +| name | telphone | icq | address |+ + + + +| cxlin | | | 桃园县 |+ + + + + row in set ( sec)mysql>delete from friends where name = maa Query OK row affected ( sec)mysql>select * from friends+ + + + +| name | telphone | icq | address |+ + + + +| cxlin | | | 桃园县 |+ + + + + row in set ( sec)最后 建好资料库与资料表后 把 addbook 资料库中所有资料表的使用权限(select insert update delete)授权给 maa@localhost(再次提醒 此处的 maa 为 MySQL 的使用者帐号 而非作业系统的 maa 帐号) mysql>grant select insert update delete >on addbook * >to maa@localhost identified by Query OK rows affected ( sec)之后 可用 maa 的身份进入 MySQL 存取 addbook 资料库 # /usr/local/mysql/bin/mysql u maa p addbookEnter password:Reading table information for pletion of table and column namesYou can turn off this feature to get a quicker startup with AWele to the MySQL monitor Commands end with or \g Your MySQL connection id is to server version: Type help for help mysql>status /mysql Ver Distrib for pc linux gnu (i )Connection id: Current database: addbookCurrent user: maa@localhostServer version Protocol version Connection Localhost via UNIX socketUNIX socket /tmp/mysql sockUptime: hours min secThreads: Questions: Slow queries: Opens: Flush tables: Open lishixinzhi/Article/program/MySQL/201311/29503

于项目升级或者服务器更换,需要将数据从一个数据库服务转移到另一个数据库服务中。两个数据库所在的服务器的公网IP分别为x.x.x.x和y.y.y.y。

进行MySQL数据迁移之前,需要做一些准备工作,即两台服务器上配置相同环境。需要在公网IP分别为x.x.x.x和y.y.y.y的服务器上都安装mysql-5.7.37。

准备工作

第一步,下载mysql-5.7.37。

第二步,配置mysql。

第三步,安装mysql-5.7.37。

第四步,远程连接另一台服务器上的mysql。

第五步,不进入mysql根目录即可进行相应的操作。

MySQL数据迁移常用方法

MySQL数据迁移一般可分为物理迁移和逻辑迁移。

物理迁移适用于海量数据整体迁移,可以直接复制数据文件或使用navicat来进行备份迁移。不同的服务器之间采用物理迁移需要将两台服务器中的MySQL server保持完全一样的版本、配置和权限。这种物理迁移优点是速度快,缺点是要求新服务器与原服务器配置完全一致,即便如此也有可能引起一些未知错误。

如果规模较小,业务也并不繁忙,推荐使用mysqldump即逻辑迁移法,它相对来说更轻巧、稳健一些。mysqldump的原理是在导入到新数据库时,先将原数据库表结构使用CREATE TABLE 'table'语句创建,然后在使用INSERT将原数据导入至新表中。可以理解为一个批量导入脚本。这样按照规范命令导入数据,大幅减少奇怪的未知错误出现。

第一种方案:物理迁移-使用navicat

第一步,下载并安装Navicat。

到网址https://www.navicat.com/en/download/navicat-premium下载需要的Navicat软件,之后在Windows系统中安装。安装成功后,然后进行数据库连接。

第二步,选择要导出的数据库ZJZK2022,格式为.sql。

具体操作:选中ZJZK2022,然后右键:转储SQL ->结构+数据 ->选择路径。得到需要的.sql文件。

第三步,将.sql文件导入新服务器数据库中。

如果根据已有的SQL文件执行数据导入,那么可以直接在打开一个数据库后,新建一个查询窗口,然后将sql文件中的内容粘贴到窗口中执行即可,这种方式同时适用于单表数据导入与数据库整体导入。

如果想要进行整个数据库的数据导入,也可以直接选中新服务器IP,右键:运行SQL。然后选择之前导出的数据库sql文件,最后点击“开始”。可以得到与之前服务器数据库中相同的数据。

第二种方案:逻辑迁移-使用mysqldump

登录远程服务器,在服务器中导出数据库

第一步,登录公网IP为x.x.x.x的阿里云ECS服务器。

第二步,将需要迁移的原数据库ZJZK2022中的数据导出,生成*.sql文件。

命令:service mysql start

/mnt/mysql/mysql-5.7.37/bin/mysqldump -u root -p --opt ZJZK2022 >/tmp/ZJZK2022-data-export.sql

然后输入登录密码“123456”。

执行mysqldump命令后,若没有报错,则shel不会有任何结果显示。

注释:ZJZK2022——本次准备迁移的数据库;

/tmp/ZJZK2022-data-export.sql——导出时生成的数据文件存放的位置与文件名;

--opt——此命令参数开启代表着同时激活了quick、add-drop-table、add-locks、extended-insert和lock-tables 参数;

quick——忽略缓存,直接将数据导出到*.sql文件中;

add-drop-table——在每个CREATE TABEL命令之前增加DROP-TABLE IF EXISTS语句,防止数据表重名;

add-locks——在备份数据表前后添加表锁定与解锁 SQL 语句;

extended-insert——此参数表示可以多行插入,提高导入效率,开启与否导入效率相差数倍,推荐开启。

第三步,进入导出目录查看导出结果。

命令:cd /tmp

ls

若结果显示ZJZK2022-data-export.sql,则说明文件已经生成。

无服务器,独立MySQL数据库远程导出至本地计算机

如果在阿里云购买的不是一台服务器,而是一个独立MySQL数据库的话,那也可以将数据库导出至本地计算机。

命令:service mysql start

/mnt/mysql/mysql-5.7.37/bin/mysqldump -h y.y.y.y -u ZJZK2022-remote -p -P3306 --default-character-set=utf8 --set-gtid-purged=OFF --column-statistics=0 ZJZK2022 >/Desktop/ZJZK2022-data-export.sql

注释:y.y.y.y——远程数据库ip地址;

ZJZK2022-remote——拥有远程访问权限的数据库账号;

-P 3306——数据库访问端口,可根据自己情况修改;

default-character-set=utf8——导出时指定字符集;

set-gtid-purged=OFF——全局事务 ID (GTID) 来强化数据库的主备一致性,故障恢复,以及容错能力。开启这个功能导入导出时,可能会出错,故关闭;

/Desktop/ZJZK2022-data-export.sql——本地计算机保存路径及保存文件名。

提示:mysqldump常见报错:mysqldump: Couldn't execute 'SELECT COLUMN_NAME, JSON_EXTRACT(HISTOGRAM, '$."number-of-buckets-specified"')

可在命令中添加column-statistics=0参数。因MySQL数据库早期版本information_schema数据库中没有名为COLUMN_STATISTICS的数据表,新版mysqldump默认启用,我们可以通过此命令禁用它。

执行命令后,若没有报错,则shel不会有任何结果显示,但已经可以在桌面上看到导出后生成的文件。

复制 *.sql 至新数据库/新服务器

使用WinSCP将导出的*.sql文件传送到内网IP为y1.y1.y1.y1的新服务器对应的路径中。

命令:scp /tmp/ZJZK2022-data-export.sql root@y1.y1.y1.y1:/tmp/

输入连接root@y1.y1.y1.y1的密码“654321”。

若结果显示“WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED”,则说明出现错误。可以使用命令“ssh-keygen -R y1.y1.y1.y1”,然后重新尝试连接,输入yes,按下回车,成功连接。

若结果显示“ZJZK2022.sql 100% 7191 2.6MB/s 00:00”,则说明数据传送成功。

如果购买的是独立MySQL数据库的话,也可以直接在阿里云服务器中直接向新服务器MySQL数据库导入数据。

导入数据库

方法一:本地数据库*.sql文件导入

第一步,当数据传输到公网IP为y.y.y.y的服务器后,可以在此服务器上新建一个名为ZJZK2022_new数据库,然后使用mysql命令直接导入数据库。

要将*.sql导入到数据库中,首先以root或有足够权限的账号登录MySQL。

命令:service mysql start

cd /mnt/mysql/mysql-5.7.37/bin

./mysql -u root -p

然后输入登录密码“123456”,就可以进入MySQL shell状态。

接着创建一个名为ZJZK2022_new的新数据库。

命令:mysql>CREATE DATABASE ZJZK2022_new

若执行命令后返回内容显示“Query OK, 1 row affected (0.00 sec)”,则说明新数据库创建成功。

然后使用“CTRL+D”退出MySQL shell。

最后导入数据库文件/tmp/ZJZK2022-data-export.sql。

命令:/mnt/mysql/mysql-5.7.37/bin/mysql -u root -p ZJZK2022_new </tmp/ZJZK2022-data-export.sql

若运行成功,则命令行不会有任何提示。

若运行失败,则命令行会提示失败原因。

注释:root——可以登录数据库的用户名;

ZJZK2022_new——刚刚新建的空数据库,数据会导入到该数据库中;

/tmp/ZJZK2022-data-export.sql——之前导出的sql文件,把它再导入到新数据库中。

第二步,要检测是否导入成功,可以登录到MySQL查看并检查数据库中的数据。

命令:cd /mnt/mysql/mysql-5.7.37/bin

./mysql -u root -p

然后输入登录密码“123456”,就可以进入MySQL shell状态。

# 选择刚刚导入数据的新建数据库

mysql>USE ZJZK2022_new

# 查看数据库中包含的表

mysql>SHOW TABLES

# 打开表查看内容

mysql>SELECT * FROM users

若结果显示的内容与公网IP为x.x.x.x的服务器中的数据库的内容一致,则说明mysql数据迁移成功。

方法二:在阿里云服务器中,直接远程将数据导入至新服务器

如果购买的是独立数据库的话,那么就没办法先把*.sql存过去,再导入。所以我们可以直接在阿里云服务器上发起导入操作,直接导入至新服务器。

命令:/mnt/mysql/mysql-5.7.37/bin/mysql -h ZJZK2022_new -u root -p -P10010 ZJZK2022_new </tmp/ZJZK2022-data-export.sql

注释:ZJZK2022_new——新服务器MySQL数据库地址;

-P——数据库端口。

数据导入至新服务器MySQL,命令执行成功后,并不会有任何提示。登录新服务器数据库可以看到迁移结果。

远程登录新服务器MySQL,查看导入情况。

公网IP分别为x.x.x.x和y.y.y.y的服务器都已经安装好了mysql数据库。

忘记MySQL的登录密码,通过重置密码解决

命令:cd /mnt/mysql/mysql-5.7.37/bin

./mysql -u root -p123456

若结果显示“ERROR 1045 (28000): Access denied for user ‘root’@’localhost’ (using password: YES)”,则说明mysql的root用户密码错误,需要重置密码,然后用新密码重新登录数据库。具体做法如下:

1)停止mysql数据库。

命令:service mysql stop

2)新建文件夹/usr/local/mysql/data。

命令:mkdir -p /usr/local/mysql/data

3)启动mysql,并以不检查权限的情况下启动。

命令:mysqld --skip-grant-tables &

mysqld --user=root --skip-grant-tables &

4)登录mysql,修改密码,刷新权限。

命令:mysql -uroot

mysql>UPDATE mysql.user SET Password=PASSWORD('123456') where USER='root'

mysql>flush privileges

mysql>exit

5)重启之后输入“mysql -uroot -p123456”即可进入mysql。

不进入mysql根目录即可进行相应的操作

第一步,在两台服务器上都配置环境变量。

在文件/etc/profile中添加下面的代码:

export PATH=$PATH:/mnt/mysql/mysql-5.7.37/bin

# 使profile文件生效

命令:source /etc/profile

# 导出数据

mysqldump -u root -p --opt ZJZK2022 >/tmp/ZJZK2022-data-export.sql

# 导入数据

mysql -uroot -p123456

mysql -u root -p ZJZK2022_new </tmp/ZJZK2022-data-export.sql

mysql -h ZJZK2022_new -u root -p -P10010 ZJZK2022_new </tmp/ZJZK2022-data-export.sql

第二步,在公网IP为y.y.y.y的服务器中将需要迁移的原数据库ZJZK2022中数据导出,生成*.sql文件,生成的文件仍在本服务器中。

1)可以在文件夹/mnt/mysql中创建一个名为mysql_export的脚本。

脚本代码如下:

# 执行MySQL命令 #!/bin/bash export MYSQL_PWD='123456' /mnt/mysql/mysql-5.7.37/bin/mysqldump -u root -p --opt ZJZK2022 >/tmp/ZJZK2022-data-export.sql

2)把启动脚本放到开机初始化目录

命令:cp /mnt/mysql/mysql_export /etc/init.d/mysql_export

#赋予可执行权限

命令:chmod +x /etc/init.d/mysql_export

#添加服务

命令:chkconfig --add mysql_export

#启动mysql_sign服务

命令:service mysql_export start

展开阅读全文

1.新建excel表格,准备录入自己的数据。

2.录入要导入的数据,注意要与数据库的类型一致。

3.另存为txt文档,记得自己的命名。

4.打开txt文档,点击另存为,修改编码,解决中文utf8。

5.打开mysql命令行,输入如下命令,注意文件位置,数据库表。


欢迎分享,转载请注明来源:夏雨云

原文地址:https://www.xiayuyun.com/zonghe/808789.html

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

发表评论

登录后才能评论

评论列表(0条)

    保存