MySQL8用户创建、授权以及数据导出导入
一、root用户的密码修改
一般情况下,MySQL安装成功后的root用户的密码都为空,为了不让我们的数据库裸奔。。。我们可以使用下面命令进行设置。
1、首先登录到mysql上,
mysql -uroot -p;
2、密码为空,直接回车,在切换到mysql库中,
use mysql;
3、执行修改密码命令,
alter user 'root'@'%' identified with mysql_native_password by 'root123456';
其中,root指root用户,%指所有ip地址,root123456指密码,而with mysql_native_password是因为MySQL8默认的认证插件是caching_sha2_password,很多客户端是不支持的,这里需要将默认的认证插件修改为mysql_native_password。
退出,重新登录,需要输入密码,说明密码修改成功。
二、用户创建、授权
1、root用户登录mysql成功之后,创建用户,
create user 'test'@'%' identified by 'test123';
其中,test指用户名,%指所有ip地址,test123指密码。
2、授权给test用户,
grant all privileges on *.* to 'test'@'%' with grant option;
这里指赋予test用户所有权限,其中with grant option指test可以给其他用户授权。
如果没起作用,可以手动刷新一下授权表,
flush privileges;
三、数据库文件导出导入
1、用test用户登录mysql,执行导出命令,
mysqldump -u test -p testdb > test.sql
其中,test指用户名,testdb指数据库名称,test.sql指输出文件,执行之后,输入密码即可在当前目录看到导出文件。(windows用户需要切换到mysql的bin目录下执行)。
如果只想要数据库中表结构,不需要表中数据则执行下列命令,-d表示只导出表结构。
mysqldump -u test -p -d testdb > test.sql
当然,也可以具体到导出某张表,
mysqldump -u test -p testdb testtb > test_testtb.sql
其中,test指用户名,testdb指数据库名称,testtb指导出表名,test_testtb.sql指输出文件。
同理,只导出表结构,不导出表数据时,加上-d即可。
2,登录mysql,切换到导出的数据库名称里,执行导入SQL文件
source test_sql
这里test_sql需要是完整路径,如D:test.sql或者opt/test.sql。
总结:数据的导出导入对我们来说相当重要,平常数据迁移和数据备份也经常会用到。