今天一个新的项目终于能够重新安装mysql了,分享下步骤:
1.下载地址:http://dev.mysql.com/downloads/mysql/ (选择Linux - Generic版本的Linux - Generic (glibc 2.5) (x86, 64-bit), Compressed)
2.直接将下载后的解压缩到/usr/local目录下
tar zxvf mysql-5.7.15-linux-glibc2.5-x86_64.tar.gz -C /usr/local
mv mysql-5.7.15-linux-glibc2.5-x86_64 mysql
mkdir /var/lib/mysql
3.生成并修改mysql配置文件,cp support-files/my-default.cnf /etc/my.cnf
vim /etc/my.cnf:
[mysqld]
datadir=/usr/local/mysql/data
socket=/tmp/mysql.sock
character-set-server=utf8
collation-server=utf8_general_ci
[mysqld_safe]
#log-error=/var/log/mariadb/mariadb.log
#pid-file=/var/run/mariadb/mariadb.pid
log-error=/var/log/mysql/mysql.log
pid-file=/var/run/mysql/mysql.pid
# include all files from the config directory
!includedir /etc/my.cnf.d
4.由于解压后的mysql事已经编译过的了,所以不需要进行--configure ,make ,make install等步骤了,直接进入到/usr/local/mysql目录下面进行下列指令操作(可参考mysql官网:http://dev.mysql.com/doc/refman/5.7/en/binary-installation.html):
groupadd mysql
useradd -r -g mysql -s /bin/false mysql
mkdir data
mkdir mysql-files
chown -R mysql .
chgrp -R mysql .
bin/mysqld --initialize --user=mysql(记录好在这里生成的password,这便是mysql root用户的初始密码)
bin/mysql_ssl_rsa_setup
chown -R root .
chown -R mysql data mysql-files
bin/mysqld_safe --user=mysql &
注:在执行bin/mysqld --initalize --user=mysql的时候可能会出现如下bug:
bin/mysqld: error while loading shared libraries: libaio.so.1: cannot open shared object file: No such file or directory
这是因为少了libaio这个依赖包,只需yum -y install libaio即可
5.建立软连接 ln -s /usr/local/mysql/bin/mysql /usr/local/bin
mysql -uroot -p (输入之前记录的密码)
成功登录到mysql界面,但是发现操作任何命令始终提示You must reset your password using ALTER USER statement before executing this statement
解决方法如下:
step 1: set password = password('your new password');
step 2: alter user 'root'@'localhost' password expire never ;
step 3: flush privileges;
退出后重新登录mysql即可,密码为你新设置的密码
6.授权用户(如果没有该用户则会默认创建用户和密码)
create database basename
grant all privileges on basename.* to "usertest"@'%' identified by '123456'
这样就创建了用户名为usertest,密码为123456的用户,并且它可以在任何ip地址上登录(设置的是%)
7.设置启动(/usr/lib/systemd/system,适用于centos7)
(1)vim nginx.service
[Unit] Description=nginx - high performance web server After=network.target remote-fs.target nss-lookup.target [Service] Type=forking ExecStart=/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf ExecReload=/usr/local/nginx/sbin/nginx -s reload ExecStop=/usr/local/nginx/sbin/nginx -s stop [Install] WantedBy=multi-user.target
启动,关闭,重启命令:systemctl start nginx systemctl stop nginx systemctl restart nginx
(2)vim mysql.service
[Unit] Description=mysql After=network.target remote-fs.target nss-lookup.target [Service] Type=forking ExecStart=/usr/local/mysql/support-files/mysql.server start ExecReload=/usr/local/mysql/support-files/mysql.server restart ExecStop=/usr/local/mysql/support-files/mysql.server stop #PrivateTmp=true [Install] WantedBy=multi-user.target
启动,关闭,重启命令:systemctl start mysql systemctl stop mysql systemctl restart mysql
(3)vim php-fpm.service
[Unit] Description=php After=network.target remote-fs.target nss-lookup.target [Service] Type=forking ExecStart=/usr/local/php/sbin/php-fpm ExecReload=/usr/local/php/sbin/php-fpm restart ExecStop=/usr/local/php/sbin/php-fpm stop [Install] WantedBy=multi-user.target
启动,关闭,重启命令:systemctl start php-fpm, systemctl stop php-fpm, systemctl restart php-fpm
(4)vim redis.service
[Unit] Description=Redis After=network.target remote-fs.target nss-lookup.target [Service] Type=forking ExecStart=/usr/local/bin/redis-server /etc/redis/6379.conf
ExecStop=kill -INT `cat /tmp/redis.pid` User=www Group=www [Install] WantedBy=multi-user.target
启动,关闭,重启命令:systemctl start redis, systemctl stop php-fpm, systemctl restart redis
编辑了或新增了service文件后需要systemctl daemon-reload一下service才会起作用