MySQL数据库(一)编译安装、安装后优化操作及超户忘记数据库密码的解决方法
MySQL的下载地址:http://www.dev.mysql.com/downloads
准备工作:卸载rpm方式安装的mysql-server、mysql
rpm -qa | grep mysql
若存在,用rpm -e mysql-server mysql --nodeps命令卸载
安装ncurses-devel与cmake包
yum -y install ncurses-devel
tar xf cmake-2.8.6.tar.gz -C /usr/src/
cd /usr/src/cmake-2.8.6/
./configure && gmake && gmake install
源码编译及安装:
增加程序用户mysql:
useradd -M -s /sbin/nologin mysql
解压mysql-5.5.22.tar.gz:
tar xf mysql-5.5.22.tar.gz -C /usr/src
cmake 配置,编译及安装:
cd /usr/src/mysql-5.5.22/
cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DSYSCONFDIR=/etc -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DWITH_EXTRA_CHARSETS=all && make && make install
安装后优化操作:
修改mysql安装目录的属主和属组:
chown -R mysql:root /sur/local/mysql/
创建修改my.cnf配置文件:
/bin/cp support-file/my-medium.cnf /etc/my.cnf
my.cnf配置文件相关介绍,在mysql解压路径support-files/下提供的模板:
my-huge.cnf 巨大数据量
my-innodb-heavy-4G.cnf innodb引擎
my-large.cnf 大数据量
my-medium.cnf 测试使用
my-small.cnf 小数据量
MySQL数据库存储引擎:
myisam
innodb
不同的引擎备份方法不同,在备份时一定要先看引擎在备份!!!
添加系统服务:
cp support-files/mysql.server /etc/int.d/mysqld
chmod +x /etc/init.d/mysqld
chkconfig mysqld --add
chkconfig mysqld --list
添加MySQL命令执行的路径到PATH环境变量:
echo "export PATH=$PATH:/usr/local/mysql/bin" >> /etc/profile
. /etc/profile
echo $PATH
执行mysql_install_db脚本初始化数据库:
/usr/local/mysql/scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data/
启动mysql服务,并查看运行状态:
/etc/init.d/mysqld start
netstat -anpt | grep :3306
连接并登陆到mysql操作环境:
mysqladmin -uroot password'123123'(首次登陆需创建密码)
退出登陆:
quit、exit、ctrl+D
设置数据库用户名密码:
mysqladmin -uroot password'123123';history -c
忘记MySQL超户密码的解决方法
方法一:
1.暂停MySQL服务:
/etc/init.d/mysqld stop
2.跳过grant表授权,进入安全模式,并在后台运行:
mysqld_safe --skip-grant-tables &
jobs(查看后台进程)
3.进入安全模式修改密码:
mysql
use mysql:
update user set Password=password('123123') where user='root';
flush privieges;
4.重启mysql服务,尝试用新密码登录:
/etc/init.d/mysqld restart
mysql -uroot -p123123
方法二:
1.修改配置文件:
vim /etc/my.cnf
2.重启:
/etc/init.d/mysqld restart
3.进入mysql修改密码:
mysql
use mysql;
update user set Password=password('123123') where user='root'
flush privileges;
4.修改/etc/my.cnf配置文件,把skip_grant_tables行删掉,重启MySQL服务:
mysql -uroot -p123123