如果编写一个小工具、小游戏,可以直接写代码,它不涉及存储数据的操作,不过如果要编写一个网络工具、系统平台、网络游戏就需要将大量的数据存储起来。
早期存储数据都是使用文件存储,不过使用文件作为存储媒介是非常有局限性了。首先文件是独立的,很难进行统计操作;其次文件依赖io句柄,频繁的进行打开文件、关闭文件,会对系统资源造成影响。
这时候数据库(data生命之源ba)就应运而生了,它可以最大限度的解决存储和读取的问题,依赖公共的sql语法标准,可以快速、灵活的对数据库引擎进行数据存储和数据读取。
mysql是一款开源的、免费的、功能强大的数据库引擎,今天就跟着福哥来学习如何在我们的tflinux操作系统上面安装mysql数据库引擎吧。
安装环境
centos:centos linux relea 7.6.1810 (core)linux:linux version 3.10.0-1062.el7.x86_64
gcc:gcc version 4.8.5 20150623 (red hat 4.8.5-36) (gcc)
软件版本
mysql-5.7.28-linux-glibc2.12-x86_64.tar.gz
本地化
如果是新环境,我们需要设置时区以保证时间显示正确
timedatectlt-timezoneasia/shanghai
安装wget
如果环境里没有wget,通过yum安装一下
yum-yinstallwget
安装依赖包
yum-yinstalllibaionumactl-libs
建立环境根目录
mkdir-p/tongfu.net/env/
建立安装包目录并进入
mkdir/packagescd/packages
准备
mysql-5.7.28-linux-glibc2.12-x86_64.tar.g处暑以后还会热吗
下载安装包
下载mysql-5.7.28安装包
wgethttps://dev.mysql.com/get/downloads/mysql-5.7/mysql-5.7.28-linux-glibc2.12-x86_64.tar.gz
创建账号
需要创建一个用户mysql
uraddmysql
安装mysql
我们下载的是编译好的二进制版本,直接解压缩即可使用
tar-xzvfmysql-5.7.28-linux-glibc2.12-x86_64.tar.gz-c/tongfu.net/env/cd/tongfu.net/env/mvmysql-5.7.28-linux-glibc2.12-x86_64/mysql-5.7.28
初始化
使用mysqld进行初始化
mkdirmysql-5.7.28/data/chown-rmysql.mysqlmysql-5.7.28/./mysql-5.7.28/bin/mysqld--initialize--ur=mysql--badir=/tongfu.net/env/mysql-5.7.28/--datadir=/tongfu.net/env/mysql-5.7.28/data/
注意:执行完上面的命令后,会有初始化密码打印出来,一定记得保存起来
2020-01-07t03:41:01.823712z0[warning]timestampwithimplicitdefaultvalueisdeprecated.pleau--explicit_defaults_for_timestamprveroption(edocumentationformoredetails).2020-01-07t03:41:03.374189z0[warning]innodb:newlogfilescreated,lsn=457902020-01-07t03:41:03.775803z0[warning]innodb:creatingforeignkeyconstraintsystemtables.2020-01-07t03:41:03.952070z0[warning]noexistinguuidhasbeenfound,soweassumethatthisisthefirsttimethatthisrverhasbeenstarted.generatinganewuuid:87b0b720-30ff-11ea-9268-02420a100170.2020-01-07t03:41:03.975895z0[warning]gtidtableisnotreadytobeud.table'mysql.gtid_executed'cannotbeopened.高安红尘情歌2020-01-07t03:41:04.839331z0[warning]cacertificateca.pemislfsigned.2020-01-07t03:41:05.515747z1[note]atemporarypasswordisgeneratedforroot@localhost:fwakhorkk6;3
默认my.cnf
删除默认的my.cnf文件
rm-f/etc/my.cnf
启动
修改启动脚本
[root@devenv]#vi./mysql-5.7.28/support-files/mysql.rverbadir=/tongfu.net/env/mysql-5.7.28/datadir=/tongfu.net/env/mysql-5.7.28/data/
启动服务
./mysql-5.7.28/support-files/mysql.rverstart
修改默认密码
使用前面在初始化的时候系统返回的信息里的最后一行的初始化密码来修改root密码
./mysql-5.7.28/bin/mysqladmin-uroot-ppassword"abcdef"
登录
使用新密码登录
./mysql-5.7.28/bin/mysql-uroot-pabcdef
自动启动
添加自动启动脚本
[root@devenv]#cat>/lib/systemd/system/mysqld.rvice<<eof[unit]description=mysqldafter=network.target[rvice]type=forkingexecstart=/tongfu.net/env/mysql-5.7.28/support-files/mysql.rverstartexecreload=/tongfu.net/env/mysql-5.7.28/support-files/mysql.rverrestartexecstop=/tongfu.net/env/mysql-5.7.28/support-files/mysql.rverstopprivatetmp=fal[install]wantedby=multi-ur.targeteof
使用 systemctl 管理 mysqld 服务
systemctlenablemysqld#设置自动启动systemctlstartmysqld#启动服务systemctlstopmysqld#停止服务systemctlrestartmysqld#重启服务
服务命令添加到系统目录
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 的字段必须在lect 内出现,这样的话 lect * from xxx group by yyy 就行不通了。
which is not functionally dependent on columns in group by clau; this is incompatible with sql_mode=only_full_group_by
解决方法,在 my.cnf 里增加一行设置即可
sql_mode = “strict_trans_tables,no_zero_in_date,no_zero_date,error_for_division_by_zero,no_auto_create_ur,no_engine_substitution”
这样就可以随便写了~
常见错误3
新版本的 mysql 在做同步复制的时候,发现 rver_id 改了没有变化,始终是 4294967295,怎么回事?经过各自尝试发现,原理新版本的 mysql 对于 rver_id 的位数做了限制,数字不能超过10位,否则就会溢出了
tnnd,能不能广东南华工商职业技术学院向后兼容啊~~
常见错误4
如果在导入 sql 的时候发现写入速度非常慢,可以从以下几个方面检查
检查 max_allowed_packet 是否设置太小了,这个会影响大 sql 的写入速度,一般情况下 dump 出来的 sql 都是多行用一个 inrt 语句执行写入的检查是不是使用的 innodb 引擎的数据表,innodb 数据表写和读都要比 myisam 慢一些检查有没有关闭 log-bin,这玩意没关闭的话导入速度会慢几百倍,上千倍,强烈建议导入数据时候关闭它!!检查 innodb_flush_log_at_trx_commit 有没有设置为 0,这玩意设置了非 0 的值的话导入速度也会慢几十倍,强烈建议导入数据时候关闭它!!常见错误5
在通过 mysql 连接数据库时候提示找不到 socket 文件的话error 2002 (hy000): can’t connect to local mysql rver through socket ‘/tmp/mysql.sock’ (2)解决方法,在 my.cnf 里设置一下
连接数据库服务器
使用下面的命令连接到mysql数据库服务器
[root@devenv]#mysql-uroot-pabcdefmysql:[warning]usingapasswordonthecommandlineinterfacecanbeincure.welcometothemysqlmonitor.commandndwith;or\g.yourmysqlconnectionidis3rverversi山不在高有仙则名on:5.7.28mysqlcommunityrver(gpl)copyright(c)2000,2019,oracleand/oritsaffiliates.allrightsrerved.oracleisaregisteredtrademarkoforaclecorporationand/oritsaffiliates.othernamesmaybetrademarksoftheirrespectiveowners.type'help;'or'\h'forhelp.type'\c'toclearthecurrentinputstatement.mysql>
创建数据库
一个数据库服务器可以有若干个数据库,每个数据库作为一个项目的数据存储介质使用
使用下面的命令可以创建一个数据库,福哥创建的是test数据库
mysql>createdatabatestdefaultchartutf8;queryok,1rowaffected(0.00c)
查看数据库列表
使用下面的命令查看服务器的数据库列表,列表包括很多系统数据库,其中还有我们刚刚创建的test库
mysql>showdatabas;+--------------------+|databa|+--------------------+|information_schema||mysql||performance_schema||sys||test|+--------------------+5rowsint(0.00c)
选择数据库
我们要选择一个数据库作为我们正在操作的库
mysql>utest;databachanged
创建数据表
一个数据库可以有若干多个数据表,每个数据表代表着一组同类型的数据,例如:用户,留言等等
使用下面的命令可以创建一个数据表,福哥创建的是test数据表,包括两个字段id和name
mysql>createtable`test`(->`id`intnotnullauto_increment,->`name`varchar(45)notnull,->primarykey(`id`)->);queryok,0rowsaffected(0.00c)
插入新数据
现在我们要像这个数据表test里插入数据了,数据表test有两个字段,分别是int类型和varchar类型,我们可以根据这两个字段的类型向里面写入值
插入语句如下
mysql>inrtintotest(name)values('福哥');queryok,1rowaffected(0.10c)
查看数据表数据
现在数据表test里面已经有了一条数据了,我们可以通过sql语句对这个数据表进行查询,得到数据表里面的数据
查询语言句如下
mysql>lect*fromtest;+----+--------+|id|name|+----+--------+|1|福哥|+----+--------+1rowint(0.00c)
修改数据表数据
我们可以通过数据表的id精确地对这一行的数据进行修改操作,因为id这一列的数据是唯一的,可以帮助我们精确定位某一具体数据行
更新语句如下
mysql>updatetesttname='福哥加油'whereid=1;queryok,1rowaffected(0.00c)rowsmatched:1changed:1warnings:0
删除数据表数据
如果需要删除掉数据表当中的数据,可以通过数据表的id精确定位某一行数据,将之删除掉
删除语句如下
mysql>deletefromtestwhereid=1;queryok,1rowaffected(0.00c)
查看数据表数据
再次查看数据表数据,可以看到数据表里已经空空如也了
mysql>lect*fromtest;emptyt(0.00c)
退出数据库服务器
操作完了之后,就可以退出数据库服务器连接了
mysql>exitbye
学会了mysql的使用技巧,今后我们就可以做一些非常有意思的东西了!目前福哥教大家的语言c/c++、java、php和python都是可以连接mysql数据库的,结合mysql数据库我们可以做一些中大型的项目,包括且不限于一个博客,一个论坛,一个留言板,一个换装游戏,一个情景游戏等等。
接下来福哥会一个一个地介绍使用c/c++、java、php、python操作mysql的方法,童鞋们一定要跟上哦~~
本文发布于:2023-04-05 15:07:08,感谢您对本站的认可!
本文链接:https://www.wtabcd.cn/fanwen/zuowen/5a0181e25c7edd197699915ad76dd72f.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文word下载地址:虚拟机安装mysql数据库(安装mysql详细步骤).doc
本文 PDF 下载地址:虚拟机安装mysql数据库(安装mysql详细步骤).pdf
留言与评论(共有 0 条评论) |