Mysql 用户密码恢复

1、安装所需要系统库相关库文件 
yum �Cy install gcc gcc-c++ compat-gcc-34-g77 autoconf automake zlib* libxml* 
ncurses-devel libmcrypt* libtool-ltdl-devel* cmake

如果找不到安装包,则使用epel官网有链接

2、创建mysql安装目录 
# mkdir -p /opt/mysql/mysql_dir

3、创建数据存放目录 
# mkdir -p /var/mysql/data

4、创建用户和用户组与赋予数据存放目录权限 
# groupadd mysql 
# useradd -g mysql mysql 
chown -R mysql:mysql /opt/mysql/
chown -R mysql:mysql /var/mysql/

6、下载解压mysql 5.5.22 
在官网去下个最新版的。
[root@localhost down]# tar zxvf mysql- 5.5.22 .tar.gz 
[root@localhost down]# cd mysql- 5.5.19 
7、编译mysql- 5.5.19 
cmake -DCMAKE_INSTALL_PREFIX=/opt/mysql/mysql_dir \
-DMYSQL_UNIX_ADDR=/var/mysql/mysql.sock \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DWITH_EXTRA_CHARSETS:STRING=utf8,gbk \
-DWITH_MYISAM_STORAGE_ENGINE=1 \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_MEMORY_STORAGE_ENGINE=1 \
-DWITH_READLINE=1 \
-DENABLED_LOCAL_INFILE=1 \
-DMYSQL_DATADIR=/var/mysql/data \
-DMYSQL_USER=mysql \
-DMYSQL_TCP_PORT=3306

##如何之前因为库文件安装不全,编译失败,安装完全库文件后,再次编译失败,则需要删除编译文件:
rm -rf CMakeCache.txt

[root@host mysql-5.5.22]# make ;make install

8、初始化数据库
[root@localhost mysql-5.5.22]# scripts/mysql_install_db \
--user=mysql --basedir=/opt/mysql/mysql_dir \
--datadir=/var/mysql/data

9、设置mysqld的配置文件与开机启动

# cp support-files/my-medium.cnf /etc/my.cnf   配置文件
-----------
# cp support-files/mysql.server /etc/init.d/mysql 启动服务文件
# chmod 755 /etc/init.d/mysql
# chkconfig --add mysql 
# chkconfig mysql on

10、启动mysql服务 
[root@localhost mysql-5.5.22]# /etc/init.d/mysqld start 

11、启动完成之后用ps -ef |grep mysql 命令查看是否启动 

12、为root帐户设置初始密码
# /opt/mysql/mysql_dir/bin/mysqladmin -u root password 'new-password'
或者限制只能通过本机登陆
# /opt/mysql/mysql_dir/bin/mysqladmin -u root -h ‘hostname’ password 'new-password'

13、登入mysql
[root@localhost mysql-5.5.22]#/opt/mysql/mysql_dir/bin/mysql -u root -p 

14、删除本机匿名连接的空密码帐号
mysql>use mysql; //选择默认数据库mysql
mysql>update user set password=’root123’ where user = '127.0.0.1';
mysql>delete from user where password="";//不允许root密码为空
mysql>flush privileges;
mysql>quit
容许root用户是远程登录

15、设置MySQL远程连接
数据库服务器设置
# /mysql -u root -p  //进入数据库
mysql>use mysql
mysql>select user,password,host from user;
mysql>update user set host = '192.168.%' where user = '127.0.0.1';
mysql>grant all privileges on *.* to root@'%' identified by "root123";//给以root@ip登录的远程连接赋予权限,能够连接数据库。远程无法连接的常见问题原因。并把远程登录用户的密码设置为root
mysql> flush privileges;
mysql>quit

16、Windows下MySQL客户端,然后可以远程登入。
MySQL官方GUI客户端:http://www.mysql.com/downloads/workbench/


如果 MySQL 正在运行, 
首先杀之: killall -TERM mysqld(如果是windows,直接调出进程管理器,结束之) 
以安全模式 启动 MySQ: 
/usr/bin/safe_mysqld --skip-grant-tables & 
(windows 下 mysql安装所以盘/mysql/bin/safe_mysqld --skip-grant-tables ) 
就可以不需要密码就进 入 MySQL 了. 
然后就是 
>use mysql 
>update user set password=password("new_pass") where user="root"; 
>flush privileges; 
重新杀 MySQL,用正常方法启动 MySQL.
另一方法
1. 向mysqld server 发送kill命令关掉mysqld server(不是 kill -9),存放进程ID的文件通常在MYSQL的数据库所在的目录中。 
killall -TERM mysqld 
你必须是UNIX 的root用户或者是你所运行的SERVER上的同等用户,才能执行这个操作。 
2. 使用`--skip-grant-tables' 参数来启动 mysqld。 (LINUX下/usr/bin/safe_mysqld --skip-grant-tables , windows下c:mysqlbinmysqld --skip-grant-tables) 

3. 然后无密码登录到mysqld server , 
>use mysql 
>update user set password=password("new_pass") where user="root"; 
>flush privileges; 
。你也可以这样做:`mysqladmin -h hostname -u user password 'new password''。 

4. 载入权限表: `mysqladmin -h hostname flush-privileges' ,或者使用 SQL 命令`FLUSH PRIVILEGES'。 
5.killall -TERM mysqld 
6.用新密码 登陆

你可能感兴趣的:(mysql,职场,休闲,用户密码恢复)