12-09
12-09
12-09
12-09
12-09
12-09
12-09
12-09
12-09
12-09
12-09
12-09
ADADADADAD
mysql数据库 时间:2024-12-25 09:55:09
作者:文/会员上传
12-09
12-09
12-09
12-09
12-09
12-09
12-09
12-09
12-09
12-09
12-09
12-09
一:实验背景;在马哥教育学习到MYSQL这章时,留作业练习的实验二:实验准备;1、先检查虚拟机上是否存在mariadb:rpm -qamariadb*,若有的话,则卸载;2、通过yum info mariadb查找到mariad
以下为本文的正文内容,内容仅供参考!本站为公益性网站,复制本文以及下载DOC文档全部免费。
一:实验背景;
在马哥教育学习到MYSQL这章时,留作业练习的实验
二:实验准备;
1、先检查虚拟机上是否存在mariadb:rpm -qamariadb*,若有的话,则卸载;
2、通过yum info mariadb查找到mariadb的官网,进去下载mariadb的最新版本mariadb-10.2.9-linux-x86_64.tar.gz;
三:实验步骤;
1、创建mysql用户;
[root@localhost~]#getentpasswdmysql#查一下该用户是否存在,不存在的话,就执行下面的代码创建[root@localhost~]#useradd-d/app/mysqldb-r-m-s/sbin/nologinmysql#创建mysql账户并指明家目录(可以自定义),为了安全起见将shell设为nologin
2、将下载的最新安装包拷进linux虚拟机,并解压缩;
[root@localhost~]#rz#用rz将windows下下载好的安装包拷进linux[root@localhost~]#tarxvfmariadb-10.2.8-linux-x86_64.tar.gz-C/usr/local/#解压缩(因为是已经编译好的二进制文件,所以目录已经被制定好,必须放在/usr/local,故加上-C解压缩到指定目录)[root@localhost~]#cd/usr/local/#进到这个目录下面[root@localhost/usr/local]#ln-smariadb-10.2.8-linux-x86_64/mysql#创建软链接(因为名字必须是mysql)
3、创建mysql的配置文件;
[root@localhost/usr/local]#cd/usr/local/mysql/#进入到刚创建的软链接目录下[root@localhost/usr/local/mysql]#mkdir/etc/mysql/#因为编译时默认配置文件放在/etc/mysql下,所以创建一个mysql的目录[root@localhost/usr/local/mysql]#lssupport-files/#配置文件已经被准备好,放在了/usr/local/mysql/support-files目录下binary-configuremysqld_multi.servermagicmysql-log-rotatemy-huge.cnfmysql.servermy-innodb-heavy-4G.cnfpolicymy-large.cnfwsrep.cnfmy-medium.cnfwsrep_notifymy-small.cnf[root@localhost/usr/local/mysql]#cpsupport-files/my-huge.cnf/etc/mysql/my.cnf#有好几个,选择其中一个复制到特定目录下/etc/mysql/并改名为特定的配置文件名my.cnf[root@localhost/usr/local/mysql]#vim/etc/mysql/my.cnf#编辑配置文件[mysqld]#在[mysqld]这一项下面加上下面三行,第一行是必须要加的,后面两行是为了方便管理、性能优化的,可有可无datadir=/app/mysqldb#指明数据库存放路径innodb_file_per_table=on#用的是innodb引擎,并且使每个表单独一个文件,方便以后复制单表时方便skip_name_resolve=on#为了加速访问速度,忽略反向解析
4、创建系统数据库;
#数据库文件已经被准备好的,放置在/usr/local/mysql/scripts/mysql_install_db里[root@localhost/usr/local/mysql]#scripts/mysql_install_db--user=mysql--datadir=/app/mysqldb#执行上条命令时,只能在/usr/local/mysql下执行,而不能进入到scripts下执行,会报错的[root@localhost/usr/local/mysql]#ls/app/mysqldb/#验证一下数据库是否生成aria_log.00000001ib_logfile0multi-master.infomysql-bin.000003aria_log_controlib_logfile1mysqlmysql-bin.000004ib_buffer_poolibtmp1mysql-bin.000001mysql-bin.indexibdata1localhost.localdomain.pidmysql-bin.000002performance_schema[root@localhost/usr/local/mysql]#
5、尝试启动mysql服务;
[root@localhost/usr/local/mysql]#cpsupport-files/mysql.server/etc/init.d/mysqld#将服务脚本放在特定的目录下[root@localhost/usr/local/mysql]#chkconfig--listmysqld#查看一下mysqld服务是否生成,没生成的话就用下面的命令加上[root@localhost/usr/local/mysql]#chkconfig--addmysqld[root@localhost/usr/local/mysql]#servicemysqldstart#我的这个报错是因为,我为了做实验演示,特意将原有的mysql用户删除重建,导致/var/log/mariadb目录没有了属主属组Restartingmysqld(viasystemctl):Jobformysqld.servicefailedbecausethecontrolprocessexitedwitherrorcode.See"systemctlstatusmysqld.service"and"journalctl-xe"fordetails.[FAILED][root@localhost/usr/local]#chown-Rmysql:mysql/var/log/mariadb/#将/var/log/mariadb/及其子文件的属主属组都换成mysql
6、创建日志文件;
我的原本/var/log/mariadb/目录文件已经存在(才会出现第5中的问题)所以不用创建,没有这个日志文件的话,在第5步启动服务时会报错说没有找到日志文件/var/log/mariadb,我们只需要创建出来就好了;
[root@localhost/usr/local/mysql]#mkdir/var/log/mariadb/#先创建出日志文件目录[root@localhost/usr/local/mysql]#chownmysql/var/log/mariadb/#这一步是原先没有/var/log/mariadb/这个文件,所以创建后需要将其所属人换成mysql,这样以后mysql就有权限在其下创建或删除子文件[root@localhost/usr/local/mysql]#servicemysqldstart#再重启服务Startingmysqld(viasystemctl):[OK][root@localhost/usr/local/mysql]#
7、添加PATH变量;
#因为mysql被放在/usr/local/mysql/bin下,所以可以将其路径写到配置文件中,使用时就不用写绝对路径了[root@localhost/usr/local/mysql]#vim/etc/profile.d/mysql.shPATH=/usr/local/mysql/bin:$PATH[root@localhost/usr/local/mysql]#./etc/profile.d/mysql.sh#使其生效[root@localhost/usr/local/mysql]#echo$PATH/usr/local/mysql/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin[root@localhost/usr/local/mysql]#
8、初始化,跑安全脚本,设置口令密码;
[root@localhost/usr/local/mysql]#mysql_secure_installation#跑安全脚本NOTE:RUNNINGALLPARTSOFTHISSCRIPTISRECOMMENDEDFORALLMariaDBSERVERSINPRODUCTIONUSE!PLEASEREADEACHSTEPCAREFULLY!InordertologintoMariaDBtosecureit,we'llneedthecurrentpasswordfortherootuser.Ifyou'vejustinstalledMariaDB,andyouhaven'tsettherootpasswordyet,thepasswordwillbeblank,soyoushouldjustpressenterhere.Entercurrentpasswordforroot(enterfornone):#在这里提示输入口令密码,因为我们之前并没有设,所以直接Enter回车OK,successfullyusedpassword,movingon...SettingtherootpasswordensuresthatnobodycanlogintotheMariaDBrootuserwithouttheproperauthorisation.Setrootpassword?[Y/n]y#问是否给root设密码,跑安全脚本就是为了安全,所以我们当然要设置密码喽!输入“y”后回车Newpassword:#输入口令密码Re-enternewpassword:#再次输入(要输两边确认)Passwordupdatedsuccessfully!Reloadingprivilegetables.....Success!Bydefault,aMariaDBinstallationhasananonymoususer,allowinganyonetologintoMariaDBwithouthavingtohaveauseraccountcreatedforthem.Thisisintendedonlyfortesting,andtomaketheinstallationgoabitsmoother.Youshouldremovethembeforemovingintoaproductionenvironment.Removeanonymoususers?[Y/n]y#是否移除匿名用户,为了安全,我们输入“y”,将匿名用户移除,不让其登录...Success!Normally,rootshouldonlybeallowedtoconnectfrom'localhost'.Thisensuresthatsomeonecannotguessattherootpasswordfromthenetwork.
Disallowrootloginremotely?[Y/n]n#是否禁用远程登录,不禁止,故输入“n”,回车...skipping.Bydefault,MariaDBcomeswithadatabasenamed'test'thatanyonecanaccess.Thisisalsointendedonlyfortesting,andshouldberemovedbeforemovingintoaproductionenvironment.Removetestdatabaseandaccesstoit?[Y/n]y#是否移除test数据库文件,“y|n”都行,此处我选的y-Droppingtestdatabase......Success!-Removingprivilegesontestdatabase......Success!Reloadingtheprivilegetableswillensurethatallchangesmadesofarwilltakeeffectimmediately.Reloadprivilegetablesnow?[Y/n]y#是否重新加载,即是否立即使以上的配置生效,当然要啊,所以“y”...Success!Cleaningup...Alldone!Ifyou'vecompletedalloftheabovesteps,yourMariaDBinstallationshouldnowbesecure.ThanksforusingMariaDB!
四:实验测试;
[root@localhost/usr/local/mysql]#mysql-uroot-p#因为我们设置过口令了,所以就要加上密码登录,可以“-p密码”,也可以直接-p后回车再输入密码,后者比较安全Enterpassword:#输入密码WelcometotheMariaDBmonitor.Commandsendwith;or\g.YourMariaDBconnectionidis24Serverversion:10.2.9-MariaDB-logMariaDBServerCopyright(c)2000,2017,Oracle,MariaDBCorporationAbandothers.Type'help;'or'\h'forhelp.Type'\c'toclearthecurrentinputstatement.MariaDB[(none)]>showdatabases;#显示数据库文件信息,而且从“[(none)]”看出现在我们并没有在哪个特定的数据库中+--------------------+|Database|+--------------------+|#mysql50#.mozilla||information_schema||mysql||performance_schema|+--------------------+4rowsinset(0.01sec)MariaDB[(none)]>usemysql#设置指定数据库为当前数据库(注意:此处是个mysql的内部命令,后面不用加分号,加分号的都是SQL语句)Databasechanged
MariaDB[mysql]>showtables;#显示当前数据库中的所有表信息+---------------------------+|Tables_in_mysql|+---------------------------+|column_stats||columns_priv||db||event||func||general_log||gtid_slave_pos||help_category||help_keyword||help_relation||help_topic||host||index_stats||innodb_index_stats||innodb_table_stats||plugin||proc||procs_priv||proxies_priv||roles_mapping||servers||slow_log||table_stats||tables_priv||time_zone||time_zone_leap_second||time_zone_name||time_zone_transition||time_zone_transition_type||user|+---------------------------+30rowsinset(0.01sec)
MariaDB[mysql]>descuser;#查看user表的表结构,名字、类型、值、....(内容只显示了前面的一部分)+------------------------+-----------------------------------+------+-----+----------+-------+|Field|Type|Null|Key|Default|Extra|+------------------------+-----------------------------------+------+-----+----------+-------+|Host|char(60)|NO|PRI||||User|char(80)|NO|PRI||||Password|char(41)|NO|||||Select_priv|enum('N','Y')|NO||N|||Insert_priv|enum('N','Y')|NO||N||+------------------------+-----------------------------------+------+-----+----------+-------+46rowsinset(0.01sec)MariaDB[mysql]>selecthost,user,passwordfromuser;#从user表中查找host/user/password信息(如下图所示)+-----------------------+------+-------------------------------------------+|host|user|password|+-----------------------+------+-------------------------------------------+|localhost|root|*367DDCBB0F311F04DDA795BC971B23954EF636DD||localhost.localdomain|root|*367DDCBB0F311F04DDA795BC971B23954EF636DD||127.0.0.1|root|*367DDCBB0F311F04DDA795BC971B23954EF636DD||::1|root|*367DDCBB0F311F04DDA795BC971B23954EF636DD|+-----------------------+------+-------------------------------------------+4rowsinset(0.00sec)
MariaDB[mysql]>selectuser();#查看当前用户名+----------------+|user()|#注意,mysql中的用户名和平常所说的用户名不太一样,+----------------+mysql中的用户名是由“用户名@本机(或者ip地址)”共同组合而成的全称|root@localhost|+----------------+1rowinset(0.00sec)#注意,对于SQL语句,后面都要加上分号,否则回车后不执行,一直到你输入分号为止(如下所示)MariaDB[(none)]>showdatabases->->;+--------------------+|Database|+--------------------+|#mysql50#.mozilla||information_schema||mysql||performance_schema|+--------------------+4rowsinset(0.00secMariaDB[mysql]>quit#quit退出Bye[root@localhost/usr/local/mysql]#
五:实验总结;
这个实验其实步骤很简单,主要是将代码敲对就OK了,在试验中,有的同学在配置文件my.conf中的那三行代码打错了,导致了一些问题出现,根据步骤一步一不做,然后出错的时候就按照步骤去排查。
11-20
11-19
11-20
11-20
11-20
11-19
11-20
11-20
11-19
11-20
11-19
11-19
11-19
11-19
11-19
11-19