目录
Mysql 密码和命令行登录
一、登录 mysql
方法一
mysql -h 数据库主机名 -u 用户 -p 密码 -P 端口号(大写 P)
例如 mysql -hlocalhost -uroot -p12345 -P3306 -p 密码部分,可以直接指定密码,如果不指定,会提示输入密码。
方法二
mysql --host=localhost --user=root --password --port=3306
MySQL root 用户密码设置/初始化设置密码
# /etc/init.d/mysql stop
# cd /usr/local/mysql
# mysqld_safe -user=mysql -skip-grant-tables -skip-networking &
# mysql -u root mysql
mysql > UPPATE user SET password=PASSWORD('newpassword') where USER='
root';
mysql > FLUSH PRIVILEGES;
mysql > quit ;
# /etc/init.d/mysql restart
# mysql -u root -p
方法 1:用 SET PASSWORD 命令首先登录 MySQL,使用 mysql 自带的那个客户端连接上 mysql。
格式:mysql> set password for 用户名@localhost = password('新密码');
例子:mysql> set password for root@localhost = password('123');
方法 2:用 mysqladmin(因为我们将 bin 已经添加到环境变量了,这个 mysqladmin也在 bin 目录下,所以可以直接使用这个 mysqladmin 功能,使用它来修改密码)关于 mysqladmin 的介绍:是一个执行管理操作的客户端程序。它可以用来检查服务器的配置和当前状态、创建和删除数据库、修改用户密码等等的功能,虽然mysqladmin 的很多功能通过使用 MySQL 自带的 mysql 客户端可以搞定,但是有时候使用 mysqladmin 操作会比较简单。
格式:mysqladmin -u 用户名 -p 旧密码 password 新密码
例子:mysqladmin -uroot -p123456 password 123
只用 mysqladmin 的时候,会出现一个 warning 警告信息:Warning: Using a password on the command line interface can be insecure.,这个没关系, 是提示你,你直接在 cmd 下使用明文设置密码的时候,是不安全的,因为别人可以通过翻看你输入指令的历史记录来查看到你设置的密码,所以提示你一下,不信你按上下键,可以看到自己之前输入的命令,或者输入下面这个指令也可以看到:
如果 root 已经设置过密码,采用如下方法
mysqladmin -u root password oldpass "newpass"
方法 3:用 UPDATE 直接编辑那个自动的 mysql 库中的 user 表 首先登录 MySQL,连接上 mysql 服务端。
mysql> use mysql; use mysql 的意思是切换到 mysql 这个库,这个库是所 有的用户表和权限相关的表都在这个库里面,我们进入到这个库才能修改这个库 里面的表。
mysql> update user set password=password('123') where user='root' and host='localhost'; 其中 password=password('123') 前面的 password 是变量, 后面的 password 是mysql 提供的给密码加密用的,我们最好不要明文的存密码,对吧,其中 user 是一个表,存着所有的 mysql 用户的信息。
mysql> flush privileges; 刷新权限,让其生效,否则不生效,修改不成功。
二、MySQL 修改初始密码
方法一:
1、使用空的初始密码登录 mysql 账号:
mysql -uroot -p
2、修改 root 密码:
(1):SETPASSWORD = PASSWORD('123456');
(2):mysqladmin -u root password '123456'
(3):mysql> update user set Password=password("123456") where User='root';
Query OK, 4 rows affected (0.01 sec)
Rows matched: 4 Changed: 4 Warnings: 0
mysql> flush privileges;
Query OK, 0 rows affected (0.04 sec)
mysql> select Host,User,password from user where user='root';
+-----------------------+------+-------------------------------------------+ | Host | User | password |
+-----------------------+------+-------------------------------------------+ | localhost | root |
*5626ED34B75C6C508BA2A3D0A4F6E4C58823138C | | localhost.localdomain | root |
*5626ED34B75C6C508BA2A3D0A4F6E4C58823138C | | 127.0.0.1 | root |
*5626ED34B75C6C508BA2A3D0A4F6E4C58823138C | | ::1 | root |
*5626ED34B75C6C508BA2A3D0A4F6E4C58823138C |
+-----------------------+------+-------------------------------------------+ 4 rows in set (0.00 sec)
方法二:
# mysqld_safe -skip-grant-tables &
# mysql -u root mysql
mysql> UPDATE user SET password=PASSWORD(“new password”) WHERE user=’
root’;
mysql> FLUSH PRIVILEGES;
方法三:
1、修改 mysql 的配置文件(默认为/etc/my.cnf),在[mysqld]下添加一行
skip-grant-tables
2、保存配置文件后,重启 mysql服务 service mysqld restart
3、mysql -u root -p 登录 mysql,然后不输入密码直接回车,然后按照上面的 流程修改密码
4、密码修改完毕,按照流程 1 的删除配置文件中的那行,然后重启 mysql 服务
三、命令行登录、远程登录 Mysql 的方法
1.本地登录 MySQL
命令:mysql -u root -p //root 是用户名,输入这条命令按回车键后系统会提示你输入密码
2. 指定端口号登录 MySQL 数据库
mysql -u root -p -P 3306 注意指定端口的字母 P 为大写,而标识密码的 p 为小写。MySQL 默认端口号为 3306
3. 指定 IP 地址和端口号登录 MySQL 数据库
命令格式为:mysql -h ip -u root -p -P 3306
例如:mysql -h 127.0.0.1 -u root -p -P 3306
例如: 在 shell 终端或者 ssh 终端,或者 cmd 窗口远程登录 端口为 3306,用户名为 user1,ip 为 182.167.12.3 的 mysql 服务器的命令是
mysql -h 182.167.12.3 -u user1 -p -P 3306