linux下mysql 登录修改密码与数据库备份
1、mysql首次登录修改密码
mysql -uroot -p(首次登录无密码,按回车即可;如果无法登陆,修改mysql配置文件,在[mysqld]最后一行加skip-grant-tables即可登录)
update mysql.user set authentication_string=password('123') where user='root' and Host = 'localhost';
或者(需登录)
set password for root@localhost = password('123456');
或者(不需登录,明文)
mysqladmin -u用户名 -p旧密码 password 新密码
或者(不需登录,密文)
mysqladmin -u用户名 -p旧密码 password
2、导入导出数据库(不需登录)
2-1、导出所有数据库
语法:mysqldump -u用户名 -p密码 --all-databases >导出路径
举例:mysqldump -uroot -p123456 --all-databases >/tmp/all.sql
2-2、导出指定数据库
语法:mysqldump -u用户名 -p密码 --databases 数据库名>导出路径
举例:mysqldump -uroot -p123456 --databases testdatebase >/tmp/testdatebase.sql
2-3、导出指定数据库的结构
语法:mysqldump -u用户名 -p密码 --no-data --databases 数据库名>导出路径
举例:
mysqldump -uroot -p123456 --no-data --databases testdatebase
> /tmp/testdatebase_no_data.sql
注:此时导出的数据库没有数据,只有结构
2-4、导出指定数据库中的指定表
语法:mysqldump -u用户名 -p密码 --databases 数据库名 --tables 数据表名>导出路径
举例:
mysqldump -uroot -p123456 --databases testdatebase --tables t_user
> /tmp/testdatebase_user.sql
2-5、导出指定表的结构
语法:mysqldump -u用户名 -p密码 --no-data --databases 数据库名 --tables 数据表名>导出路径
举例:
mysqldump -uroot -p123456 --no-data --databases testdatebase --tables t_user
> /tmp/testdatebase_user_no_data.sql
注:此时导出的数据库中的表没有数据,只有结构
2-6、导出指定表带查询条件
语法:mysqldump -u用户名 -p密码 --databases 数据库名 --tables 数据表名 --where='条件'>导出路径
举例:
mysqldump -uroot -p123456 --databases testdatebase --tables
t_user --where='user_no=1' > /tmp/mysql_user_no.sql
2-7、跨服务器备份数据库
将 host1 服务器中的 db1 数据库的所有数据导入到 host2 中的db2数据库中,db2的数据库必须存在否则会报错
(经测试,在mysql5.5版本中,db2存在即可,实际生成数据库名称与db1一致;加上-C参数可以启用压缩传递)
语法:mysqldump --host=host1 -u用户名 -p密码 --databases db1 |mysql --host=host2 -u用户名 -p密码 --databases db2
举例:mysqldump --host=192.168.1.101 -uroot -p123456 -C --databases testdatebase |mysql --host=192.168.3.102 -uroot -p123456 --database testdatebase
2-8、通过 sql 文件导入数据库
语法:mysql -u用户名 -p密码 < 导入路径
举例:mysql -uroot -p123456 < /tmp/testdatebase.sql