一.mysql-5.7.11的通用二进制安装过程
1.groupadd -r -g 306 mysql (500以下是系统组,不会有家目录,-r表示系统组或者系统用户,不能够进行登录,只是为了服务的运行)
2. useradd -g 306 -r -u 306 mysql
3. cd /usr/local
4. tar zxvf /path/to/mysql-VERSION-OS
.tar.gz
5.ln -sv full-path-to-mysql-VERSION-OS
mysql (建立软链接)
6.cd mysql
7.mkdir data (用来存放数据, --datadir=/usr/local/mysql/data)
8.chmod 750 data
9.chown -R mysql.mysql /usr/local/mysql/*
10.
bin/mysql_install_db --user=mysql
# Before MySQL 5.7.6bin/mysqld --initialize --user=mysql
# MySQL 5.7.6 and upbin/mysql_ssl_rsa_setup
# MySQL 5.7.6 and up
这里是mysql-5.7.11的版本,所以使用
bin/mysqld --initialize --user=mysql
--datadir=/usr/local/mysql/data
11.bin/mysql_ssl_rsa_setup
12.chown -R root . (. 表示的是/usr/local/mysql/的所有文件,将这些文件夹的用户改为root主要的是为了防止mysql被盗用时的权限)
13.chown -R mysql data(将data的用户改为mysql是为了能够操作数据库)
14.cp /support-files/mysql.server /etc/init.d/mysqld
cd /etc/init.d/
ll mysqld (查看mysqld 这个服务脚本是否有执行权限)
chkconfig -add mysqld (添加到服务列表中)
chkconfig -list mysqld (查看是否会默认启动,2、3、4、5是on)
15. cp /support-files/my-default.cnf /etc/my.cnf
vim /etc/my.cnf 编辑修改配置文件
16.service mysqld start|stop|status|restart
netstat -lntp 查看是否有启动mysqld
17.mysql 命令连接到mysqld上
如果mysql 这个命令的话,可以通过 echo $PATH 查看到 /usr/local/mysql/bin这个路径是否有被增减到path路径中
如果没有的话,可以 vim /etc/profile.d/mysql.sh 编辑增加一行export PATH=$PATH:/usr/local/mysql/bin
可以重新打开一个会话,让其生效,也可以通过 source /etc/profile.d/mysql.sh 让其立即生效,在查看一下 echo $PATH
二.mysql 连接到mysqld 出现错误的解决方法
2.1 ERROR 1045 (28000): Access denied for user 'root'@'localhost'
1. /etc/init.d/mysqld stop (service mysqld stop ) 关闭mysqld的服务
2. mysqld_safe --user=mysql --skip-grant-tables --skip-networking & (在mysql/bin)
3. msyql (连接到mysqld上)
4. use mysql
5. update user set password =PASSWORD('12345') where user='root'; (旧版本的mysql,新版不使用psssword)
update mysql.user set authentication_string=password('root') where user='root' (5.7的版本,可以通过 desc user 查看表结构)
6.FLUSH PRIVILEGES;
7.quit;
8. service mysqld restart
2.2.错误问题二:当你首次通过mysql 连接到mysqld 上的时候,对数据操作会出现
You must SET PASSWORD before executing this statement
解决方法:SET PASSWORD = PASSWORD('123456'); 重新设置密码即可
9. 由于我在进行gitlab安装的时候,出现了自带安装了mysql,可能是这个原因导致了/etc/init.d/mysqld这个服务文件被覆盖,
导致了原来我用通用二进制安装的mysql5.7无法使用service mysqld stop,所有后来我使用killall -9 mysqld 强制将所有的mysqld进制杀掉
(使用kill -9 mysqld是无法杀死所有的进程的) ,但是后面出现了service mysqld start 无效的问题,最终我将/usr/local/msyql/support-files下的mysq.server文件重新替换到/etc/init.d/mysqld下,才能够启动
10.
让root用户可以在远程主机访问mysql
mysql> -- UPDATE user SET Host='%' WHERE User='root'
mysql> flush privileges
附带:mysql 官方的安装手册
https://dev.mysql.com/doc/refman/5.7/en/binary-installation.html