操作系统:Centos 7.1
mysql数据库版本:mysql5.7.9
mysql官方网站:http://www.mysql.com
------------------------------------------
1、安装新版mysql之前,我们需要将系统自带的mariadb-lib卸载
[root@5201351 ~]# rpm -qa|grep mariadb mariadb-libs-5.5.41-2.el7_0.x86_64 [root@5201351 ~]# rpm -e mariadb-libs-5.5.41-2.el7_0.x86_64 --nodeps
2、到mysql的官网下载最新版mysql的rpm集合包:mysql-5.7.9-1.el7.x86_64.rpm-bundle.tar
3、上传mysql-5.7.9-1.el7.x86_64.rpm-bundle.tar到linux服务器,并解压tar包
4、其中最简单的安装mysql-server服务,只需要安装如下4个软件包即可,我们可以使用rpm -ivh命令进行安装
mysql-community-common-5.7.9-1.el7.x86_64.rpm
mysql-community-libs-5.7.9-1.el7.x86_64.rpm --(依赖于common)
mysql-community-client-5.7.9-1.el7.x86_64.rpm --(依赖于libs)
mysql-community-server-5.7.9-1.el7.x86_64.rpm --(依赖于client、common)
5、接下来是初始化数据库,我们使用如下几条命令均可,效果都是一样的
[root@5201351 ~]# mysql_install_db --datadir=/var/lib/mysql //必须指定datadir,执行后会生成~/.mysql_secret密码文件 [root@5201351 ~]# mysqld --initialize //新版的推荐此方法,执行生会在/var/log/mysqld.log生成随机密码
6、更改mysql数据库目录的所属用户及其所属组,然后启动mysql数据库
[root@5201351 ~]# chown mysql:mysql /var/lib/mysql -R [root@5201351 ~]# systemctl start mysqld.service //启动mysql数据库服务
7、根据第5步中的密码登录到mysql,更改root用户的密码,新版的mysql在第一次登录后更改密码前是不能执行任何命令的
[root@5201351 ~]# mysql -uroot -p')j#)=uRig4yJ' mysql> set password=password('www.cnblogs.com/5201351');
8、最后我们还可以根据实际情况创建用户,及作权限分配
mysql> create user 'root'@'192.168.100.2' identified by 'QQ5201351'; mysql> GRANT ALL PRIVILEGES ON dbname.* to 'root'@'192.168.100.2'; mysql> flush privileges
==============================================
最后需要特别提醒注意的一点是,新版的mysql数据库下的user表中已经没有Password字段了,
而是将加密后的用户密码存储于authentication_string字段
尊重别人的劳动成果 转载请务必注明出处:http://www.cnblogs.com/5201351/p/4912614.html
http://www.cnblogs.com/5201351/p/4912614.html
安装完mysql 之后,登陆以后,不管运行任何命令,总是提示这个
step 1: SET PASSWORD = PASSWORD('your new password');
或 update user set authentication_string=password("your_new_password") where user="root";
step 2: ALTER USER 'root'@'localhost' PASSWORD EXPIRE NEVER;
step 3: flush privileges;
完成以上三步退出再登,使用新设置的密码就行了,以上除了红色的自己修改成新密码外,其他原样输入即可
参考1: https://dev.mysql.com/doc/refman/5.6/en/alter-user.html
参考2: http://dev.mysql.com/doc/refman/5.7/en/password-expiration-policy.html
参考3: http://stackoverflow.com/questions/33467337/reset-mysql-root-password-using-alter-user-statement-after-install-on-mac
http://www.cnblogs.com/debmzhang/p/5013540.html
CentOS 7继承了RHEL 7的新的特性,例如强大的systemctl,而systemctl的使用也使得以往系统服务的/etc/init.d的启动脚本的方式就此改变,也大幅提高了系统服务的运行效率。但服务的配置和以往也发生了极大的不同,说实在的,变的简单而易用了许多。
下面我们以利用forever来实现Node.js项目自启动为例,初探CentOS 7的systemctl。
前提:Node.js环境已配置成功,forever包安装成功,有一个能跑的Node.js程序。
CentOS 7的服务systemctl脚本存放在:/usr/lib/systemd/,有系统(system)和用户(user)之分,像需要开机不登陆就能运行的程序,还是存在系统服务里吧,即:/usr/lib/systemd/system目录下
每一个服务以.service结尾,一般会分为3部分:[Unit]、[Service]和[Install],我写的这个服务用于开机运行Node.js项目,具体内容如下:
[Unit]
Description=xiyoulibapi
After=network.target remote-fs.target nss-lookup.target
[Service]
Type=forking
PIDFile=/node.js/pid
ExecStart=/usr/local/bin/forever start /node.js/xiyoulib/bin/www
ExecReload=/usr/local/bin/forever restart /node.js/xiyoulib/bin/www
ExecStop=/usr/local/bin/forever stop /node.js/xiyoulib/bin/www
PrivateTmp=true
[Install]
WantedBy=multi-user.target
[Unit]部分主要是对这个服务的说明,内容包括Description和After,Description用于描述服务,After用于描述服务类别
[Service]部分是服务的关键,是服务的一些具体运行参数的设置,这里Type=forking是后台运行的形式,PIDFile为存放PID的文件路径,ExecStart为服务的具体运行命令,ExecReload为重启命令,ExecStop为停止命令,PrivateTmp=True表示给服务分配独立的临时空间,注意:[Service]部分的启动、重启、停止命令全部要求使用绝对路径,使用相对路径则会报错!
[Install]部分是服务安装的相关设置,可设置为多用户的
服务脚本按照上面编写完成后,以754的权限保存在/usr/lib/systemd/system目录下,这时就可以利用systemctl进行配置了
首先,使用systemctl start [服务名(也是文件名)]可测试服务是否可以成功运行,如果不能运行则可以使用systemctl status [服务名(也是文件名)]查看错误信息和其他服务信息,然后根据报错进行修改,直到可以start,如果不放心还可以测试restart和stop命令。
接着,只要使用systemctl enable xxxxx就可以将所编写的服务添加至开机启动即可。
我的脚本编写方法参照了nginx的编写方法,也可以根据其他功能类似的程序。
这样看来,虽然systemctl比较陌生,但是其实比init.d那种方式简单不少,而且使用简单,systemctl能简化的操作还有很多,现在也有不少的资料,看来RHEL/CentOS比其他的Linux发行版还是比较先进的,此次更新也终于舍弃了Linux 2.6内核,无论是速度还是稳定性都提升不少。
http://www.linuxidc.com/Linux/2014-07/104487.htm