linux下面修改mysql的root用户密码
首先是登陆到mysql数据库,如果你的密码是空,想添加新的密码,通过代码:mysql -u root 进入mysql系统;如果你的root用户有密码,想修改密码,通过代码:mysql -u root -p 回车,然后再输入旧密码进入mysql系统。
#mysql -u root
mysql> use mysql;
mysql> updateusersetpassword=password('newPWD') whereuser='root';
mysql> flush previleges;
mysql> quit;
# service mysqld restart
不过有时候数据库以防结果不立刻生效,可以先关闭数据库进程 # killall mysqld 然后再启动数据库 #service mysqld start。
一、windows下破解:
1、停止mysql服务
2、进入命令窗口,进入mysql安装目录下的bin目录下,跳过权限检测,启动mysql
mysql\bin>mysqld-nt --skip-grant-tables
3、重新打开一个窗口,进入bin目录下,设置新的root密码
mysql\bin>mysqladmin -u root flush-privileges password "newpassword"
mysql\bin>mysqladmin -u root -p shutdown 提示你输入密码,输入newpassword进入数据库
4、停止mysql server,用正常模式启动mysql,然后用上面账号就可以登陆数据库库了。
二、linux下破解:
vi /etc/my.cnf# 在里面添加一行skip-grant-tables # 保存退出# 重启mysql服务services mysql restart# 这里登录mysql就不需要密码了mysql -uroot -p# 修改mysql的root密码use mysql;update user set password=password(‘123’)where user='root';# 最后
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
vi
/etc/my
.cnf
# 在里面添加一行
skip-grant-tables
# 保存退出
# 重启mysql服务
services mysql restart
# 这里登录mysql就不需要密码了
mysql -uroot -p
# 修改mysql的root密码
use mysql;
update user
set
password=password(‘123’)where user=
'root'
;
# 最后刷新权限
flush privileges
quit
|
/date/mysql/bin/mysqld_safe --user=mysql & # 启动mysql后台运行 vi /etc/rc.d/rc.local # 开机启动执行 可用于开机启动脚本 /etc/rc.d/rc3.d/S55sshd # 开机启动和关机关闭服务连接 # S开机start K关机stop 55级别 后跟服务名 ln -s -f /date/httpd/bin/apachectl /etc/rc.d/rc3.d/S15httpd # 将httpd启动程序脚本连接到开机启动目录
mysql的三个故障解决小结
1、MySQl服务无法启动
我们在使用mysql的过程中,常会遇到MySQl服务无法启动,具体报错信息:Starting MySQL ERROR.The server quit without updating PID file (/[FAILED]l/mysql/)
对这样的错误,网上的分析解释有很多,有人分析把skip-federated这个参数屏蔽就可以了,也有人认为删除mysql-bin.index这个文件就可以启动服务。或者检查MYSQL日志,如果提示有参数配置错误,也很容易导致这个错误。
比较快速有效的解决办法就是做好数据库备份,然后只需如下两步,就可快速使数据库恢复正常。
进入MYSQL安装位置下的scripts目录,执行
./mysql_install_db --defaults-file=/etc/my.cnf --basedir=/usr/local/mysql --datadir=/var/mysql/data --user=mysql (初始化MYSQL数据库)
然后再执行 ./mysqld_safe --user=mysql --datadir=/var/mysql/data & (安全启动模式)
这时候就可正常启动MYSQL了。
(注:参数可根据mysql实际的安装目录和数据目录进行调整)
2、配置MYSQL同步时的Slave_IO_Running状态异常
在配置MYSQL同步时,丛机显示:
Slave_IO_Running: Connecting
Slave_SQL_Running: Yes
确保两台MYSQL主机网络是互通的。当出现这种错误时,没有显示正常状态的YES,这个问题主要是因为授权出现错误或不匹配。比如授权的用户不匹配或授权的从机IP不对,都会出现Connecting这个显示。
通过show slave status\G 命令,仔细观察这两个显示状态,都为YES才正常。
3、配置MYSQL同步时的Slave_SQL_Running状态异常
在配置MYSQL同步时,丛机显示:
Slave_IO_Running: YES
Slave_SQL_Running: No
这个问题一般有两个原因:
A.程序可能在slave上进行了写操作
B.也可能是slave机器重起后,事务回滚造成的.
解决办法一:
mysql> slave stop;
mysql> set GLOBAL SQL_SLAVE_SKIP_COUNTER=1; (在start slave时,从当前位置起,跳过一个event。)
mysql> slave start;
解决办法二、
首先停掉Slave服务:slave stop
到主服务器上查看主机状态:
记录File和Position对应的值
进入master
mysql> show master status;
+----------------------+----------+--------------+------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+----------------------+----------+--------------+------------------+
| localhost-bin.000009 | 33622483 | weichat | mysql,test |
+----------------------+----------+--------------+------------------+
1 row in set (0.00 sec)
然后到slave服务器上执行手动同步:
mysql> change master to
> master_host='master_ip',
> master_user='user',
> master_password='pwd',
> master_port=3306,
> master_log_file=localhost-bin.000009',
> master_log_pos=326 ;
1 row in set (0.00 sec)
mysql> slave start;
1 row in set (0.00 sec)
mysql> show slave status\G
*************************** 1. row ***************************
Master_Log_File: localhost-bin.000009
Read_Master_Log_Pos: 326
Relay_Log_File: localhost-relay-bin.000027
Relay_Log_Pos: 1014014
Relay_Master_Log_File: localhost-bin.000009
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
Replicate_Do_DB: weichat
手动同步需要先停止master的写操作!
注意:
Slave_IO_Running:连接到主库,并读取主库的日志到本地,生成本地日志文件
Slave_SQL_Running:读取本地日志文件,并执行日志里的SQL命令。
4.mysql用户无法远程登录
MySQL的默认配置root帐户只能在本地登录。远程登录会出现如下提示:
1103 �C host xxx.xxx.xxx.xx is not allowed to connec to this mysql server.
或
1045 �C Access denied for user ‘root’@’10.163.225.155′ (using password: YES).
原因是MySQL指定了某个账户只能在某个地方登录服务器;例如:[email protected] 表示账户 root 只能在IP地址为 19.168.1.155 的机器上登录MySQL服务器。
解决办法:
1)修改root账户可在某地址登录(地址可以是IP地址、机器名、域名、%表示任何地址)来解决问题,已root身份登录执行命令:
mysql>use mysql;
mysql>update user set host=’%’ where user=’root’;
mysql>flush privileges; ― 刷新MySQL的系统权限相关表;
到这里已经完成了,如果还是登录不了的话就尝试重启下MySQL;
2)创建一个账户使其能远程登录,已root身份登录执行命令:
mysql> grant 权限1,权限2,…权限n on 数据库名称.表名称 to 用户名@用户地址 identified by ‘连接口令’;
权限1,权限2,…权限n代表select,insert,update,delete,create,drop,index,alter,grant,references,reload,shutdown,process,file等14个权限。
赋予用户部分权限
all privileges 或者 all 代替,表示赋予用户全部权限。
当数据库名称.表名称被*.*代替,表示赋予用户操作服务器上所有数据库所有表的权限。
用户地址可以是localhost,也可以是ip地址、机器名字、域名。也可以用’%’表示从任何地址连接。
‘连接口令’不能为空,否则创建失败。
mysql>grant select,insert,update,delete,create,drop on vtdc.employee to [email protected] identified by ‘123′;
给来自10.163.225.87的用户joe分配可对数据库vtdc的employee表进行select,insert,update,delete,create,drop等操作的权限,并设定口令为123。如果没有joe用户就会自动创建他。
mysql>grant all privileges on vtdc.* to [email protected] identified by ‘123′;
给来自10.163.225.87的用户joe分配可对数据库vtdc所有表进行所有操作的权限,并设定口令为123。
mysql>grant all privileges on *.* to [email protected] identified by ‘123′;
给来自10.163.225.87的用户joe分配可对所有数据库的所有表进行所有操作的权限,并设定口令为123。
mysql>grant all privileges on *.* to joe@localhost identified by ‘123′;
给本机用户joe分配可对所有数据库的所有表进行所有操作的权限,并设定口令为123。
3)使用127.0.0.1替换localhost来试试看
4)''@localhost记录的影响(用户名是空,主机字段是localhost的记录影响了)
delete mysql.user where user = ''; 以后,service mysqld restart 重启mysql
Linux下面Oracle安装
http://jasonliping.blog.51cto.com/471157/1399939
http://blog.51cto.com/zt/629