mysql数据库的初始化
Tag mysql, 初始化, on by view 3064

对于编译安装的mysql数据库,编译安装完成后首先就要进行简单的配置和初始化。

mysql 5.5版本

配置服务

cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql
chkconfig --add mysql
chkconfig mysql on

编辑配置文件 /etc/my.cnf,默认datadir=/var/lib/mysql,确认/var/lib/mysql目录存在,默认log-error=/var/log/mariadb/mariadb.log,确认/var/log/mariadb/mariadb.log文件存在,若不存在则创建。后续启动服务器可以监控日志文件查看错误日志。

如此配置后便可以通过service mysql start启动mysql服务了,不过此时无法成功启动,还需初始化mysql系统表

cd /usr/local/mysql
./scripts/mysql_install_db

使用 service mysql start 启动服务器便可以正常启动。

mysql 5.7版本

配置服务与上述5.5版本一致,按下面方法初始化数据库

cd /usr/local/mysql/bin
./mysql_install_db --basedir=/usr/local/mysql --datadir=/usr/local/mysql --user=root --force

使用 service mysql start 启动服务器。


mysql 5.7重置密码
Tag mysql, 密码, 重置, on by view 3523

在mysql 5.7中刚配置好的服务器会有一个随机生成的root密码,此时需要重置密码,或者用户忘记root密码时也需要重置密码,mysql 5.7的密码重置与之前版本有所不同。

修改my.cnf,在[mysqld]字段下增加skip-grant-tables字段,用于忽略权限验证,此时service mysql restart重启服务器,然后就可以无密码登录数据库了。并且在[mysqld]下添加default_password_lifetime=0设置密码不失效。

./mysql -uroot

登录到服务器后刷新权限

FLUSH PRIVILEGES;

然后执行下面的sql修改root密码

update mysql.user set authentication_string=password('new_password') where user='root' and Host ='localhost';

刷新权限并退出mysql客户端

flush privileges;
exit;

然后修改mysql.cnf,将之前添加的skip-grant-tables字段删除,保存退出。重启服务器

service mysql restart

再用mysql连接服务器试试看,此时需要密码,使用你的新密码便可以登录了。