这篇文章主要介绍“Mysql数据库应用常见的问题有哪些”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Mysql数据库应用常见的问题有哪些”文章能帮助大家解决问题。

一、安装mysql1、CentOS系统

1.)安装mysql

下载并安装mysql的repo源

$wgethttp://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm$sudorpm-ivhmysql-community-release-el7-5.noarch.rpm

安装mysql

$sudoyuminstall-ymysql-server

2.)启动/重启/关闭服务

servicemysqldstart|restart|stop2、alpine系统

alpine系统中安装mysql实际是开源的MariaDB,MariaDB数据库是MySQL的一个分支/衍生版,完全兼容MySQL,并在扩展功能、存储引擎以及一些新的功能改进方面都强过MySQL,安装参考

$apkupdate#安装数据库及客户端$apkaddmysqlmysql-client#初始化数据库$mysql_install_db--user=mysql--datadir=/var/lib/mysql#启动服务$rc-servicemariadbstart#若没有rc,安装:apkaddopenrc#修改密码$mysqladmin-urootpassword'新root密码'#加入开机启动$rc-updateaddmariadbdefault二、操作mysql1、登录数据库

默认初始化直接登录

$mysql

若提示失败,说明有密码,运行:

$mysql-uroot-p#一次性登录$mysql-u用户-p密码2、操作数据库

#查看所有数据库mysql>showdatabases;#创建数据库mysql>createdatabasexxxcharset=utf8;#删除数据库mysql>dropdatabasexxx;#切换数据库mysql>usemysql;#查看表mysql>showtables;#创建表mysql>createtablexxx(idint,namevarchar(20),update_timedatetime);#删除表mysql>droptablexxx;#显示表结构mysql>descxxx;#查询指定a,b字段的记录,不知道用*代替mysql>selecta,bformxxx;#插入记录mysql>insertintoxxx(id,user)values(1,'wang',now());#删除记录mysql>deletefromxxxwherename='wang';#清屏命令mysql>systemclear;#退出mysql>quit;3、用户管理

mysql的user表用来存储所有用户权限,其中host字段表示指定ip用户能使用,同名不同host的为两个用户,host常见值如下:

localhost:只能服务器端上使用
192.168.4.%:指定ip段能用
%:通配符,表示所有ip用户都能用,多用于远程连接

下面新建/删除用户操作时,可通过user@'host'指定,若不指定默认为%

#切换到mysql权限数据库mysql>usemysql;#查看用户及所属的hostmysql>selectuser,hostfromuser;#新建用户并设置密码mysql>createuser'用户名'identifiedby'密码';#上面不指定host,默认%,等同于:mysql>createuser'用户名'@'%'identifiedby'密码';#删除用户(只删除host为%的用户)mysql>dropuser'用户名';#查看用户权限mysql>showgrantsfor'用户名';#设置权限,并指定数据库mysql>grantallprivilegesonxxxDB.*to'用户名';#修改密码,注意密码处不能直接password='新密码'mysql>updateusersetpassword=password('新密码')whereuser='用户名';#刷新权限表mysql>flushprivileges;4、批量操作

1.)sql脚本批量执行

$mysql-uroot-p-Dxxx<./init.sql#xxx为数据库

2.)备份/恢复数据库

$mysqldump--all-databases-h227.0.0.1-uroot-p>./backup/mysql-bak.sql$mysqldump--all-databases-h227.0.0.1-uroot-p<./backup/mysql-bak.sql三、常见问题1、root密码忘记怎么擦除?

$mysql–skip-grant-table&mysql>usemysql;mysql>updateusersetpassword=password('新密码')whereuser='root';mysql>flushprivileges;mysql>quit;

这里需要注意的是每句命令需要用分号“;”结尾,执行完以上得操作,root的密码就被清空。
2、空用户错误

ERROR 1044 (42000): Access denied for user ''@'localhost' to database 'mysql'错误:

原因:

mysql数据库的user表里,存在用户名为空的账户即匿名账户,导致登录的时候虽然用的是root,但实际是匿名登录的。

处理方案:

#1.关闭mysql$servicemysqldstop#2.屏蔽权限$mysqld_safe--skip-grant-table#屏幕出现:Startingdemofrom.....#3.新开起一个终端输入$mysql-urootmysqlmysql>updateusersetpassword=password('新密码')whereuser='root';mysql>flushprivileges;mysql>quit;3、服务上root能用,远程不能登录

$mysql-uroot-pmysql>usemysql;#先查看user表host字段,有无通配符'%',若有直接运行flushprivileges;mysql>selecthostfromuserwhereuser='root';mysql>grantallprivileges*.*to'root'@'%'identifiedby'root密码';mysql>flushprivileges;mysql>quit;4、远程连接提示caching_sha2_password错误

从mysql5.7版本之后,默认采用了caching_sha2_password验证方式

mysql>usemysql;mysql>alteruser'root'@'%'identifiedwithmysql_native_passwordby'root密码';5、mysql修改默认数据存放

$mysqladmin-uroot-pvariables|grepdatadir#查看mysql数据库存放目录$servicemysqldstop$mv/var/lib/mysql/路径#移动数据库文件$vi/etc/my.cnf#修改datadir和socket两个字段,并添加以下:[mysql]socket=/路径/mysql.sock$servicemysqldstart

关于“Mysql数据库应用常见的问题有哪些”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识,可以关注亿速云行业资讯频道,小编每天都会为大家更新不同的知识点。