我以centos6.9为例,然后我们需要准备的是下载mysql的安装包
有两种方式:
第一种是去官网下载
下载地址:http://dev.mysql.com/downloads/mysql/5.6.html#downloads
版本:5.6.42,通用版,linux 64位
第二种是使用wget命令直接下载
wget http://dev.mysql.com/get/Downloads/MySQL-5.6/mysql-5.6.33-linux-glibc2.5-x86_64.tar.gz
我这里使用的是第二种方式
[root@CentOS /]# wget http://dev.mysql.com/get/Downloads/MySQL-5.6/mysql-5.6.33-linux-glibc2.5-x86_64.tar.gz
把安装包移动到 /usr/local下面
[root@CentOS /]# mv mysql-5.6.33-linux-glibc2.5-x86_64.tar.gz /usr/local/
切换路径 cd /usr/local
解压安装包 [root@CentOS local]# tar zxvf mysql-5.6.33-linux-glibc2.5-x86_64.tar.gz
将解压后的文件夹重命名为mysql
[root@CentOS local]# mv mysql-5.6.33-linux-glibc2.5-x86_64 mysql
添加系统用户组和用户
groupadd mysql
useradd -r -g mysql mysql
进入mysql根目录: cd /usr/local/mysql
修改当前目录拥有者为mysql用户:chown -R mysql:mysql ./
安装数据库: ./scripts/mysql_install_db --user=mysql
如果安装时报以下错误
错误:FATAL ERROR: please install the following Perl modules before executing ./scripts/mysql_install_db:
Data::Dumper
解决:yum install -y perl-Module-Install.noarch
或者:yum -y install autoconf //此包安装时会安装Data:Dumper模块
错误:Installing MySQL system tables…/bin/mysqld: error while loading shared libraries: libaio.so.1: cannot open shared object file: No such file or directory
解决:yum install libaio* -y
修改当前目录拥有者为root用户: chown -R root:root ./
修改当前data目录拥有者为mysql用户:chown -R mysql:mysql data
然后我们复制 /usr/local/mysql/support-files/mysql.server 到 /etc/init.d并重命名为mysql,作为启动文件
[root@CentOS mysql]# cp support-files/mysql.server /etc/init.d/mysql
启动服务
[root@CentOS mysql]# /etc/init.d/mysql start
如果启动时报以下错误:
[root@izwz9bk2m2a7r73p9l0he5z mysql]# /etc/init.d/mysql start
Starting MySQL.touch: cannot touch ‘/var/log/mariadb/mariadb.log’: No such file or directory
chmod: cannot access ‘/var/log/mariadb/mariadb.log’: No such file or directory
touch: cannot touch ‘/var/log/mariadb/mariadb.log’: No such file or directory
chown: cannot access ‘/var/log/mariadb/mariadb.log’: No such file or directory
/usr/local/mysql/bin/mysqld_safe: line 129: /var/log/mariadb/mariadb.log: No such file or directory
/usr/local/mysql/bin/mysqld_safe: line 166: /var/log/mariadb/mariadb.log: No such file or directory
touch: cannot touch ‘/var/log/mariadb/mariadb.log’: No such file or directory
chown: cannot access ‘/var/log/mariadb/mariadb.log’: No such file or directory
chmod: cannot access ‘/var/log/mariadb/mariadb.log’: No such file or directory
/usr/local/mysql/bin/mysqld_safe: line 129: /var/log/mariadb/mariadb.log: No such file or directory
The server quit without updating PID file (/var/lib/mysql/i[FAILED]2a7r73p9l0he5z.pid).
解决:
修改my.cnf文件 vim /etc/my.cnf或者/usr/local/mysql/my.cnf
[mysqld_safe]
log-error=/var/log/mysql/mysql.log
pid-file=/var/run/mysql/mysql.pid
或
mkdir /var/log/mariadb
chmod 700 /var/log/mariadb
为了方便使用mysql来连接数据库
我们去配置一个环境变量
[root@CentOS mysql]# vim /etc/profile
编辑按 i
在文件最后一行加上 export PATH=$PATH:/usr/local/mysql/bin
保存并退出 esc shift+zz
刷新配置文件 [root@CentOS mysql]# source /etc/profile
环境变量配置好之后就可以使用服务命令操作mysql数据库了
service mysql start
service mysql restart
service mysql stop
service mysql status
至此,发现我们还不知道密码,只有绕过验证去修改一个了
编辑配置文件 vim /etc/my.cnf或者/usr/local/mysql/my.cnf
编辑按 i
在[mysqld]后面任意一行添加“skip-grant-tables”用来跳过密码验证的过程
保持并退出 esc shift+zz
重启mysql服务
[root@CentOS mysql]# /etc/init.d/mysql restart(或service mysql restart)
使用root用户连接
[root@CentOS mysql]# mysql -uroot -p
密码任意
报这个错是因为 /tmp下没有mysql.sock文件
解决:
mysql.sock是一个临时文件,在mysql服务启动时会自动生成
用find命令可以找到mysql.sock文件,只不过不在/tmp目录下而已
[root@localhost /]# find / -name mysql.sock
/var/lib/mysql/mysql.sock
解决方法:
建立软连接到/tmp目录下:
ln -s /var/lib/mysql/mysql.sock /tmp/mysql.sock
除此之外也可以建立一个TCP/IP连接,因为这样它就不会使用套接字文件进行连接
mysql -uroot -h 127.0.0.1 -p
密码任意
出现这个界面表示连接成功
连接成功后选择数据库
mysql> use mysql;
mysql> update user set password=password('你的新密码') where user='root';
mysql> flush privileges;(//强制刷新)
mysql> quit(或者\q)
去掉刚才/etc/my.cnf或者/usr/local/mysql/my.cnf文件中添加的 skip-grant-tables
保存后重启mysql服务
使用账号密码登录mysql
[root@CentOS mysql]# mysql -uroot -h 127.0.0.1 -p
输入刚才设置的密码
登录成功
切换数据库 use mysql;
查询所有表 show tables;
其中user表中就记录了mysql数据库中所有用户的账号密码信息,但是密码是加密后的密文
我们可以输入查询语句看看
select host,user,password from user;
下面我来讲讲怎么设置远程连接这个数据库
第一种:指定ip连接
//授权用户表
mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'192.168.124.188' IDENTIFIED BY 'root' WITH GRANT OPTION;
mysql> flush privileges;
然后我们在看看user表中的数据
发现多了刚才授权的那个ip已经添加入库了
第二种:允许所有ip都能远程
//修改 localhost 为 %
mysql> update user set host='%' where host='localhost';
//强制刷新
mysql> flush privileges;
最后关闭防火墙或者在防火墙中添加一个端口3306才能被访问
//关闭防火墙
service iptables stop
//查看防火墙状态
service iptables stop
//启动防火墙
service iptables start
先关闭防火墙用navicat连接试试
至此mysql数据库安装成功
在防火墙中添加端口就不多说了,在这篇文章中有提到
https://blog.csdn.net/xiaTianCsDN/article/details/82229519