背景
最近更换工作,自己买了个电脑,需要做下基础环境。mysql虽然工作中经常用到,但是工作以来自己安装的次数基本没有,因此本次安装也踩坑了。现在分享一下过程,作为总结。
1.安装包下载
》有网络的环境:
wget http://dev.mysql.com/get/Downloads/MySQL-5.6/mysql-5.6.33-linux-glibc2.5-x86_64.tar.gz (下载到当前目录下)
》离线安装包下载地址
https://dev.mysql.com/
2.解压
tar -zxvf mysql-5.6.33-linux-glibc2.5-x86_64.tar.gz
将解压后包放到/usr/local/mysql下
cp -r mysql-5.6.33-linux-glibc2.5-x86_64 /usr/local/mysql
添加用户组和用户
groupadd mysql
useradd -g mysql mysql
3.安装
cd /usr/local/mysql/
mkdir ./data/mysql
chown -R mysql:mysql ./
./scripts/mysql_install_db --user=mysql -- datadir=/usr/local/mysql/data/mysql
cp support-files/mysql.server /etc/init.d/mysqld
chmod 755 /etc/init.d/mysqld
cp support-files/my-default.cnf /etc/my.cnf
配置项修改
vi /etc/init.d/mysqld
#修改项:
basedir=/usr/local/mysql/
datadir=/usr/local/mysql/data/mysql
4.验证安装成功
启动服务
service mysqld start
查看mysql状态
service mysqld status
查看,默认3306端口是否正常
netstat -lnp|grep 3306
配置软连接使mysql命令可在任何目录下使用
ln -s /usr/local/mysql/bin/mysql /usr/bin
使用mysql命令登录
[root@localhost mysql]# mysql
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| test |
+--------------------+
4 rows in set (0.00 sec)
mysql> use mysql;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A
Database changed
mysql> select host,user,password from user;
+-----------------------+------+----------+
| host | user | password |
+-----------------------+------+----------+
| % | root | 123456 |
| localhost.localdomain | root | 123456 |
| 127.0.0.1 | root | 123456 |
| ::1 | root | 123456 |
| localhost | | |
| localhost.localdomain | | |
+-----------------------+------+----------+
6 rows in set (0.00 sec)
至此mysql已经安装成功,但是坑也埋下了
注意关闭linux防火墙 和selinux
查看关闭selinux
查看状态 getenforce
关闭SELinux: 1、临时关闭(不用重启机器): setenforce 0
##设置SELinux 成为permissive模式
##setenforce 1 设置SELinux 成为enforcing模式2.修改配置文件需要重启机器: 修改/etc/selinux/config 文件 将SELINUX=enforcing改为SELINUX=disabled 重启机器即可
查看关闭防火墙
systemctl status firewalld
systemctl stop firewalld
配置开启mysql自启动
chkconfig --level 345 mysqld on
查看是否正常启动
chkconfig --list mysqld
五 坑描述
知识点:mysql出于安全考虑,会限制远程连接mysql的用户host,通过查看mysql库user表中的host可以知晓哪些是允许的host,
mysql> select host,user,password from user;
+-----------------------+------+----------+
| host | user | password |
+-----------------------+------+----------+
| % | root | 123456 |
| localhost.localdomain | root | 123456 |
| 127.0.0.1 | root | 123456 |
| ::1 | root | 123456 |
| localhost | | |
| localhost.localdomain | | |
+-----------------------+------+----------+
6 rows in set (0.00 sec)
可以看到有哪些host是允许访问的,如所在客户端不允许,可通过在mysql库中执行以下语句
update user set host = '%' where user ='root';
flush privileges;
修改允许访问的host值为“%”,这样就允许所有host访问了。然后刷新使改变生效即可。可能update操作会报错,但是实际已经修改,可使用select语句再次查询。