出了一个乌龙,修改密码却忘记自己改成了啥密码,怎么办呢?
修改默认密码
- 首先停止正在运行的MySQL进程
# Linux下,运行 killall -TERM mysqld # Windows下,如果写成服务的 可以运行 net stop mysql # 如未加载为服务,可直接在进程管理器中进行关闭。
- 以安全模式启动MySQL
# Linux mysqld_safe --skip-grant-tables & # Windows X:/MySQL/bin/mysqld-nt.exe --skip-grant-tables
- 完成以后就可以不用密码进入MySQL了
# Linux mysql -u root -p # Windows X:/MySQL/bin/mysql -u root -p
- 更改密码
use mysql update user set password=password("新密码") where user="root"; password函数是必须的,因为密码是加密的。 flush privileges; quit;
基本命令
- show databases:显示存在哪些数据库
- mysql –uuser –ppwd:登录
- create database test:创建数据库
- select database():查看当前使用的数据库
- show tables:(注意:最后有个s) 当前数据库包含的表信息
- drop database test:删除数据库
- Groupadd mysql和useradd -r -g mysql mysql:添加系统mysql组和mysql用户。 Home目录下增加mysql
- chown -R mysql:mysql ./:修改当前目录拥有者为mysql用户;
- desc tableName; 看到表结构
- alter table tablename add column columnname int default 0 中间增加字段
- show create table tableName 显示出建表的完整语法
远程登录
默认是不能通过客户端远程连接数据库的,需要授权才能使用。
- 例如,你想myuser使用mypassword从任何主机连接到mysql服务器的话。
GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'%' IDENTIFIED BY 'mypassword' WITH GRANT OPTION; FLUSH PRIVILEGES;
- 如果你想允许用户myuser从ip为192.168.1.6的主机连接到mysql服务器,并使用mypassword作为密码
GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'192.168.1.3' IDENTIFIED BY 'mypassword' WITH GRANT OPTION; FLUSH PRIVILEGES;
- 如果你想允许用户myuser从ip为192.168.1.6的主机连接到mysql服务器的dk数据库,并使用mypassword作为密码
GRANT ALL PRIVILEGES ON dk.* TO 'myuser'@'192.168.1.3' IDENTIFIED BY 'mypassword' WITH GRANT OPTION; FLUSH PRIVILEGES;