Centos下使用tar.gz包安装mysql5.7
2018-05-30 本文已影响0人
windegao
安装环境
- centos 7.4
- mysql版本:5.7.22, 64位tar.gz格式
- 如你在使用中出现于本文不符的情况,请自行查找对应环境的安装方式
- root身份安装
下载mysql
- 官网: https://dev.mysql.com/downloads/mysql/5.7.html#downloads
选择5.7.22,Linux generic(glibc2.12-x86_64.tar.gz)64位. - 或直接使用:
wget -c https://cdn.mysql.com//Downloads/MySQL-5.7/mysql-5.7.22-linux-glibc2.12-x86_64.tar.gz
解压安装
# 解压
# 将mysql安装在/usr/local
# 建立软连接
tar -zxvf mysql-5.7.22-linux-glibc2.12-x86_64.tar.gz -C /usr/local
cd /usr/local
ln -s mysql-5.7.22-linux-glibc2.12-x86_64 mysql
# 添加用户
groupadd mysql
useradd -r -g mysql -s /bin/false mysql
# 设置权限
cd /usr/local/mysql
chown -R mysql:mysql ./
# 启动安装
./bin/mysqld --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --initialize
# 如果顺利的话,则会在输出的最后一行显示mysql的随机密码,请记下来
# 开启mysql服务
./support-files/mysql.server start
# mysql进程放入系统进程中
cp support-files/mysql.server /etc/init.d/mysqld
# 重启mysql服务
service mysqld restart
# 登录并修改root密码
mysql -u root -p
alter user 'root'@'localhost' identified by 'mypassword';
# flush privileges;
安装异常处理
# * 如果出现: server quit without updating PID file (/usr/local/mysql/data/等异常无法启动mysql,则可以通过如下方法处理
# 1 删除文件
rm /etc/mysql/my.cnf
# 2 文件权限,mysql用户无/usr/local/mysql/data权限
chown -R mysql:mysql /usr/localhost/mysql/data
# 3 杀死之前启动失败的mysqld进程:
ps -ef|grep mysqld
kill -9 进程ID
pkill mysqld
# 4 删除/usr/localhost/mysql/data/mysql-bin.index
rm /usr/localhost/mysql/data/mysql-bin.index
# 5
安装过程中应该注意的问题
- 查询安装后的mysql的默认的随机密码
cat /root/.mysql_secret - 将mysql/bin加入到环境变量中
vim /etc/profile
# 在文件最后增加:
PATH=/usr/local/mysql/bin:/usr/local/mysql/lib:$PATH
export PATH
修改端口号
# 登录查询端口号
mysql -u root -p
show global variables like 'port'
vim /etc/my.cnf
# 编辑内容如下
[mysqld]
port=7888
datadir=/usr/local/mysql/data
user=mysql
symbolic-links=0
[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
# 保存后重启服务:
service mysqld restart
修改字符编码
show variables like 'character%';
# 如果出现latin1,则我们需要统计编码方式
[mysqld]
# 增加一行
character_set_server=utf8
# 重启
/etc/init.d/mysqld restart
远程访问设置
# 本地root用户登录mysql, 与本地的root账户并不冲突
grant all privileges on *.* to 'root'@'%' identified by '123456' with grant option;
# 如果设置了防火墙
iptables -I INPUT -p tcp -m state --state NEW -m tcp --dport 7888 -j ACCEPT
iptables -L -n
# 限制访问
iptables -D INPUT -p tcp -m state --state NEW -m tcp --dport 7888 -j ACCEPT