我装的虚拟机,使用的centos7的最小安装,其中mysql是5.7.19的版本
首先,我是准备将mysql安装在/usr/local/mysql中
1.先将压缩包解压,解压到指定文件夹
tar zvxf mysql-5.7.19-linux-glibc2.5-i686.tar.gz -C /usr/local
2.到local文件下,重命名mysql的解压文件夹
[root@localhost local]# mv mysql-5.7.19-linux-glibc2.5-i686/ mysql
3.然后在mysql文件夹中创建data文件夹,并且在配置文件中声明
[root@localhost local]# mkdir /mysql/data
配置文件路径:/etc/my.cnf
[root@localhost local]# vi /etc/my.cnf
将datadir路径改为当前的data路径:/usr/local/mysql/data
4.创建mysql用户组和用户,并设置权限。
[root@localhost local]# groupadd mysql
[root@localhost local]# useradd mysql -g mysql
[root@localhost local]# cd mysql
[root@localhost mysql]# pwd
/usr/local/mysql
[root@localhost mysql]# chown -R mysql .
[root@localhost mysql]# chgrp -R mysql .
后面两个语句后面有个点,请注意!
5.初始化mysql
进入bin目录:
[root@localhost local]# cd /usr/local/mysql/bin
安装异步IO
root@localhost bin]# yum install libaio
一般的结果是:
包 libaio-0.3.107-10.el6.i686 已安装并且是最新版本无须任何处理
进行mysql的初始化:
[root@localhost bin]# ./mysql_install_db --user=mysql -->basedir=/usr/local/mysql/ --datadir=/usr/local/mysql/data
6.可以启动mysql的服务试试:
进入support-files目录
[root@localhost bin]# cd /usr/local/mysql/support-files
[root@localhost support-files]# ./mysql.server start
进行到这一布,十之八九你们都是会报错的,现在我们就来解决这些错误:
如果你们报
Starting MySQL.170603 01:20:16 mysqld_safe error: log-error set to '/var/log/mariadb/mariadb.log', however file don't exists. Create writable for user 'mysql'.
这样的错误,缺少什么文件,这个好解决,只需要两步:
首先,你查看一下是否有mariadb文件夹,没有,执行下面的语句,有就直接跳到下一步
[root@localhost support-files]# mkdir /var/log/mariadb
然后,授予权限
[root@localhost support-files]#chown -R mysql:mysql /var/log/mariadb
这样你就再试试启动服务,应该还是会报什么文件缺失,照着这样来是没问题的。不过刚刚的做法我觉得应该完善一点,mariadb是centos中安装mysql才会出现的,我觉得统一使用MySQL的名称会比较好一点,所以上边的完善做法是:
首先,在配置文件中:
vi /etc/my.cnf
[mysqld_safe]
log-error=/var/log/mysql/mysql.log => 把 mariadb 改成 mysql
pid-file=/var/run/mysql/mysql.pid => 把 mariadb 改成 mysql
然后创建日志文件
touch /var/log/mysql/mysql.log
chown -R mysql:mysql /var/log/mysql
chown -R mysql:mysql /var/log/mysql/mysql.log
如报run没有文件的错误,方法照此类推
在装载时,还有可能遇到一个/tmp/mysql.sock缺失还是什么的问题,这个问题,你会发现tmp里面根本没有mysql.sock这个文件,真正的在你的配置文件里面能够看到,我的在/var/lib/mysql/mysql.sock,这个问题有的说吧配置文件改成正确路径就对了,我改成/tmp/mysql.sock发现行不同,最后方式是进行这两个文件的软连接:
ln -s /var/lib/mysql/mysql.sock /tmp/mysql.sock
这个问题可能不会在启动服务的时候看到,在连接的时候可能会看到
还有一些问题,我记不得了,希望以后有问题大家一起共享。
7.连接数据库
进入bin目录
[root@localhost ~]# cd /usr/local/mysql/bin
其中,mysql有初始密码的,我们可以在这里找到
[root@localhost bin]#cat /root/.mysql_secret
[root@localhost bin]# ./mysql -uroot -p
然后输入密码
连接上可能遇到mysql.sock的问题,我在第六步最后部分说明了
8.修改数据库中的密码
mysql> set password=password('root123');
然后你就可以玩玩试试了
mysql> use mysql;
mysql> select Host,User from user;
mysql> GRANT ALL PRIVILEGES ON . TO root@'%' identified by >'root123';
Query OK, 0 rows affected, 1 warning (0.00 sec)
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)
9.远程连接:
最后你远程连接的时候,发现可能连接不上,其原因一般是防火墙未打开3306端口(MySQL的默认端口)
因为需要远程操作,所以我还在环境变了中设置了mysql路径:
vi /etc/profile
export PATH USER LOGNAME MAIL HOSTNAME HISTSIZE HISTCONTROL
export PATH=$PATH:/usr/local/mysql/bin
这样添加
再向防火墙文件加入3306端口
firwall-cmd --permanent --add-port=3306/tcp
再重启防火墙服务
service firewalld restart
基本就OK
你想看防火墙的配置,百度一下配置文件的路径就可以了,centos7和其他版本的防火墙文件的路径略有不同,查的时候注意一下就好。
网友评论