虚拟机安装mysql数据库 安装mysql详细步骤

如果你写一个小工具或者游戏,可以直接写代码,不涉及存储数据的操作。但是如果要写一个网络工具、系统平台或者网络游戏,就需要存储大量的数据。在早期,所有的数据都是通过文件存储的,但是使用文件作为存储介质是非常有限的。首先,文件是独立的,很难进行统计操作;其次,...

如果你写一个小工具或者游戏,可以直接写代码,不涉及存储数据的操作。但是如果要写一个网络工具、系统平台或者网络游戏,就需要存储大量的数据。

在早期,所有的数据都是通过文件存储的,但是使用文件作为存储介质是非常有限的。首先,文件是独立的,很难进行统计操作;其次,文件依赖IO句柄,频繁打开和关闭文件会影响系统资源。

这时候数据库就应运而生了,它可以最大限度的解决存储和读取的问题,并且依靠通用的SQL语法标准,可以快速灵活的从数据库引擎中存储和读取数据。

MySQL是一个开源的、免费的、强大的数据库引擎。今天跟着富哥学习一下如何在我们的TFLinux操作系统上安装MySQL数据库引擎。

基本信息

安装环境

CentOS:CentOS Linux版本7.6.1810(核心)Linux:Linux版本3 . 10 . 0-1062 . el7 . x86 _ ***
GCC:GCC版本4.8.5 20150623(红帽4.8.5-36) (GCC)

软件发布

MySQL-5 . 7 . 28-Linux-glibc 2.12-x86 _ *** . tar . gz

准备工作/即将开始工作

本地化

如果是新环境,我们需要设置时区,以保证时间显示正确。

timedatectl?set-timezone?Asia/Shanghai

安装wget

如果环境中没有wget,通过yum安装。

yum?-y?install?wget

安装依赖包

yum?-y?install?libaio?nu***ctl-libs

建立环境根目录

mkdir?-p?/tongfu.net/env/

建立安装包目录并输入

mkdir?/packagescd?/packages

安装MySQL 5.7

准备

MySQL-5 . 7 . 28-Linux-glibc 2.12-x86 _ *** . tar . g

下载安装包

下载mysql-5.7.28安装包

wget?https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.28-linux-glibc2.12-x86_***.tar.gz

创建帐号

你需要创建一个用户mysql。

useradd?mysql

安装mysql

我们下载了编译好的二进制版本,可以直接解压使用。

tar?-xzvf?mysql-5.7.28-linux-glibc2.12-x86_***.tar.gz?-C?/tongfu.net/env/cd?/tongfu.net/env/mv?mysql-5.7.28-linux-glibc2.12-x86_***/?mysql-5.7.28

初始化

使用mysqld进行初始化。

mkdir?mysql-5.7.28/data/chown?-R?mysql.mysql?mysql-5.7.28/./mysql-5.7.28/bin/mysqld?--initialize?--user=mysql?--basedir=/tongfu.net/env/mysql-5.7.28/?--datadir=/tongfu.net/env/mysql-5.7.28/data/

注意:执行上述命令后,初始化密码会被打印出来,一定要保存好。

2020-01-07T03:41:01.823712Z?0?[Warning]?TIMESTAMP?with?implicit?DEFAULT?value?is?deprecated.?Please?use?--explicit_defaults_for_timestamp?server?option?(see?documentation?for?more?details).2020-01-07T03:41:03.374***Z?0?[Warning]?InnoDB:?New?log?files?created,?LSN=457902020-01-07T03:41:03.775803Z?0?[Warning]?InnoDB:?Creating?foreign?key?constraint?system?tables.2020-01-07T03:41:03.952070Z?0?[Warning]?No?existing?UUID?has?been?found,?so?we?assume?that?this?is?the?first?time?that?this?server?has?been?started.?Generating?a?new?UUID:?87b0b720-30ff-11ea-9268-02420a100170.2020-01-07T03:41:03.975895Z?0?[Warning]?Gtid?table?is?not?ready?to?be?used.?Table?'mysql.gtid_executed'?cannot?be?opened.2020-01-07T03:41:04.839331Z?0?[Warning]?CA?certificate?ca.pem?is?self?signed.2020-01-07T03:41:05.515747Z?1?[Note]?A?temporary?password?is?generated?for?root@localhost:?FwaKHorkK6;3

部署

默认为My.cnf

删除默认的my.cnf文件

rm?-f?/etc/my.cnf

开始

开始

修改启动脚本

[root@dev?env]#?vi?./mysql-5.7.28/support-files/mysql.serverbasedir=/tongfu.net/env/mysql-5.7.28/datadir=/tongfu.net/env/mysql-5.7.28/data/

启动服务

./mysql-5.7.28/support-files/mysql.server?start

修改默认密码

使用初始化时系统返回的信息中最后一行的初始化密码来修改root密码。

./mysql-5.7.28/bin/mysqladmin?-uroot?-p?password?"abcdef"

登录

使用新密码登录

./mysql-5.7.28/bin/mysql?-uroot?-pabcdef

自动启动

添加自动启动脚本

[root@dev?env]#?cat?>?/lib/systemd/system/mysqld.service?<<EOF[Unit]Description=mysqldAfter=network.target[Service]Type=forkingExecStart=/tongfu.net/env/mysql-5.7.28/support-files/mysql.server?startExecReload=/tongfu.net/env/mysql-5.7.28/support-files/mysql.server?restartExecStop=/tongfu.net/env/mysql-5.7.28/support-files/mysql.server?stopPrivateTmp=false[Install]WantedBy=multi-user.targetEOF

使用systemctl管理mysqld服务

systemctl?enable?mysqld?#?设置自动启动systemctl?start?mysqld?#?启动服务systemctl?stop?mysqld?#?停止服务systemctl?restart?mysqld?#?重启服务

命令被添加到系统目录中。

ln?-s?/tongfu.net/env/mysql-5.7.28/bin/mysql?/usr/bin/ln?-s?/tongfu.net/env/mysql-5.7.28/bin/mysqldump?/usr/bin/

常见错误

常见错误1

新版mysql中找不到my.cnf配置文件,因为mysql中大部分参数都设置为默认值。原则上我们不需要设置太多的参数。

如果要设置的话,可以从mysql的老版本拷贝过来,放在mysql安装目录下。当然,你也可以像以前一样放在/etc/my.cnf中,但是它不使用管理和迁移。

常见错误2

在mysql的新版本中使用group by语句时有一个限制。简单来说,group by的字段必须出现在select中,这样select * from xxx group by yyy就不行了。

它在功能上不依赖于GROUP BY子句中的列;这与sql_mode=only_full_group_by不兼容

解决方案,在my.cnf中添加一行设置

sql _ mode = & # 8220STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO _ ENGINE _ SUBSTITUTION & # 8221

所以可以随便写~

常见错误3

新版本的mysql在做同步***的时候,发现server_id已经改了,没有改,一直是4294967295。发生了什么事?经过他们各自的尝试,发现新版mysql的Principle限制了server_id的位数,不能超过10位,否则会溢出。

TNND,能不能向下兼容~ ~

常见错误4

如果你发现导入sql时写入速度很慢,可以从以下几个方面检查

检查 ***x_allowed_packet 是否设置太小了,这个会影响大 sql 的写入速度,一般情况下 dump 出来的 sql 都是多行用一个 insert 语句执行写入的检查是不是使用的 innodb 引擎的数据表,innodb 数据表写和读都要比 myisam 慢一些检查有没有关闭 log-bin,这玩意没关闭的话导入速度会慢几百倍,上千倍,强烈建议导入数据时候关闭它!!检查 innodb_flush_log_at_trx_commit 有没有设置为 0,这玩意设置了非 0 的值的话导入速度也会慢几十倍,强烈建议导入数据时候关闭它!!

常见错误5

错误2002(hy 000):Can ’如果通过mysql连接数据库时找不到socket文件,则通过socket连接到本地MySQL服务器‘/tmp/MySQL . sock ’(2)解决方案,设置在my.cnf中

使用

连接到数据库服务器

使用以下命令连接到MySQL数据库服务器

[root@dev?env]#?mysql?-uroot?-pabcdefmysql:?[Warning]?Using?a?password?on?the?com***nd?line?inte***ce?can?be?insecure.Welcome?to?the?MySQL?monitor.??Com***nds?end?with?;?or?\g.Your?MySQL?connection?id?is?3Server?version:?5.7.28?MySQL?Community?Server?(GPL)Copyright?(c)?2000,?2019,?Oracle?and/or?its?affiliates.?All?rights?reserved.Oracle?is?a?registered?trade***rk?of?Oracle?Corporation?and/or?itsaffiliates.?Other?names?***y?be?trade***rks?of?their?respectiveowners.Type?'help;'?or?'\h'?for?help.?Type?'\c'?to?clear?the?current?input?statement.mysql>

创建数据库

一个数据库服务器可以有多个数据库,每个数据库都作为一个项目的数据存储介质。

使用下面的命令创建一个数据库,Fuge创建一个测试数据库。

mysql>?create?database?test?default?charset?utf8;Query?OK,?1?row?affected?(0.00?sec)

查看数据库列表

使用以下命令查看服务器的数据库列表。该列表包括许多系统数据库,包括我们刚刚创建的测试库。

mysql>?show?databases;+--------------------+|?Database???????????|+--------------------+|?infor***tion_sche***?||?mysql??????????????||?perfor***nce_sche***?||?sys????????????????||?test???????????????|+--------------------+5?rows?in?set?(0.00?sec)

选择数据库

我们想选择一个数据库作为我们正在操作的库。

mysql>?use?test;Database?changed

创建数据表

一个数据库可以有多个数据表,每个数据表代表一组相同类型的数据,如用户、消息等。

使用以下命令创建数据表。Fuge创建了一个测试数据表,其中包括两个字段id和name。

mysql>?CREATE?TABLE?`test`?(????->?`id`?int?NOT?NULL?AUTO_INCREMENT,?????->?`name`?varchar(45)?NOT?NULL,?????->?PRIMARY?KEY?(`id`)????->?);Query?OK,?0?rows?affected?(0.00?sec)

插入新数据

现在我们要像这个数据表测试一样插入数据。数据表测试有两个字段,即int类型和varchar类型。我们可以根据这两个字段的类型向它们写入值。

插入如下声明

mysql>?INSERT?INTO?test?(name)?VALUES?('福哥');Query?OK,?1?row?affected?(0.10?sec)

查看数据表数据

现在数据表测试中有一段数据。我们可以通过SQL语句查询数据表,得到数据表中的数据。

查询语句如下

mysql>?SELECT?*?FROM?test;+----+--------+|?id?|?name???|+----+--------+|??1?|?福哥???|+----+--------+1?row?in?set?(0.00?sec)

修改数据表数据

我们可以通过数据表的id准确的修改这一行的数据,因为列id中的数据是唯一的,可以帮助我们准确的定位到具体的一个数据行。

更新语句如下

mysql>?UPDATE?test?SET?name?=?'福哥加油'?WHERE?id?=?1;Query?OK,?1?row?affected?(0.00?sec)Rows?***tched:?1??Changed:?1??Warnings:?0

删除数据表数据

如果需要删除数据表中的数据,可以通过数据表的id准确定位到一行数据并删除。

删除语句如下

mysql>?DELETE?FROM?test?WHERE?id?=?1;Query?OK,?1?row?affected?(0.00?sec)

查看数据表数据

再看数据表中的数据,可以看到空空在数据表中是一样的。

mysql>?SELECT?*?FROM?test;Empty?set?(0.00?sec)

退出数据库服务器

操作完成后,您可以退出数据库服务器连接。

mysql>?exitBye

摘要

学会了MySQL的技巧,以后就可以做一些很有意思的事情了!目前富哥教的语言c/c++、java、php、python都可以接入MySQL数据库。结合MySQL数据库,可以做一些中大型的项目,包括但不限于一个博客,一个论坛,一个留言板,一个换装游戏,一个情景游戏等等。

接下来,弗莱俱乐部将逐一介绍如何使用c/c++、java、php、python操作MySQL。童鞋一定要跟上~ ~

本文来自安安分分做我自我投稿,不代表舒华文档立场,如若转载,请注明出处:https://www.chinashuhua.cn/24/518106.html

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

相关推荐

  • 如何导出苹果手机的照片到电脑,方法很简单3个步骤就搞定

    定位器不是存储重要照片的理想位置,这些照片很容易被删除或意外丢失。照片太多也会占用定位器内存,导致存储不足空。如果需要将iPhone中的照片备份到电脑上,可以参考以下信息:Windows用户可以在Aisi助手的帮助下传输照片:1.打开Aisi Assistant的PC端,将iOS设备连接到电脑。

    2023-07-29 11:22:01
    299 0
  • app版本更新的具体流程 手机app升级最新版本的步骤

    众所周知,定位器是由硬件和软件组成的。随着技术的不断进步,硬件规格不断提高,软件也在进行大升级。其中系统部分最吸引大家的眼球。无论是iOS还是Android,系统都在不断“进化”,所以系统推送更新通知其实是一件再正常不过的事情。MIUI 12(来源网络)不过,定位器系统升级

    2023-07-29 07:01:01
    886 0
  • 网站建设的概念是什么,建站流程及步骤

    大家好,欢迎收看边肖的文章。您的支持是边肖最大的动力。如果你喜欢边肖的文章,请给边肖一个赞!每个企业都需要有自己的网站。很多老板觉得建一个网站很难。其实建一个网站并没有那么难。今天,我将一步步教你如何建立自己的网站。第一步:确定网站类型首先,确定网站类型。

    2023-07-29 06:58:01
    938 0
  • 企业建网站的详细步骤(企业为什么要建网站)

    很多企业和个人都想建立一个自己的网站,因为网站是互联网最基础的工具,不仅可以曝光自己的产品,还可以在网站上形成交易,让客户直接购买。而且网站的好处还不止这些,因为这篇文章的主题是教你建网站。网站的好处我就不多说了,还是占字数。我把我的想法逐字逐句打了出来,

    2023-07-29 06:17:02
    966 0

评论列表

联系我们

在线咨询: QQ交谈

邮件:admin@qq.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信