centos7安装mysql5.7.11
安装必要的组件
yum install –y autoconf automake imake libxml2-devel expat-devel cmake gcc gcc-c++ libaio libaio-devel bzr bison libtool ncurses5-devel
碰到这种,输入y即可
下载mysql
cd /
wget https://dev.mysql.com//Downloads/MySQL-5.7/mysql-5.7.11-linux-glibc2.5-x86_64.tar.gz
cd /usr/local/ 解压 tar zxvf mysql-5.7.11-linux-glibc2.5-x86_64.tar.gz 重命名 mv mysql-5.7.11-linux-glibc2.5-x86_64 mysql
进入安装文件夹下的support-files
cd /usr/local/mysql/support-files/ cp my-default.cnf /etc/my.cnf
将mysql配置文件拷贝到etc下,提示文件已经存在输入yes
vi /etc/my.cnf
编辑配置文件
添加在[mysqld]下方即可
character-set-client-handshake = FALSE character-set-server = utf8mb4 collation-server = utf8mb4_unicode_ci [client] default-character-set=utf8mb4
为避免登录时出现提示:mysql: [ERROR] unknown variable 'sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES'
需要在/etc/my.cnf文件中禁用或删除掉sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
复制mysql.server 到/etc/init.d/ 目录下【目的想实现开机自动执行效果】
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql
vi /etc/init.d/mysql
修改如下内容
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data
创建Linux新用户
groupadd mysql #建立一个mysql的组 useradd -r -g mysql mysql #建立mysql用户,并且把用户放到mysql组 passwd mysql (mysql123) #给mysql用户设置一个密码 chown -R mysql:mysql /usr/local/mysql/ 给目录/usr/local/mysql 更改拥有者
初始化 mysql 的数据库
进入mysql的bin
cd /usr/local/mysql/bin
./mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data
记录生成的密码(参考下图选中部分)
给数据库加密
./mysql_ssl_rsa_setup --datadir=/usr/local/mysql/data
启动mysql(为了不让进程卡主,可在启动mysql的命令后加上&代表此进程在后台运行)
./mysqld_safe --user=mysql &
查看进程
ps -ef|grep mysql
保证在bin目录下
cd /usr/local/mysql/bin/ ./mysql -uroot -p (输入临时密码) ./mysql -uroot -p -ou_UC0-j=f* (输入临时密码)
修改密码
set password=password('/* RZXrzx1218*/');
这里我设置了密码,请自行更换
授权远程访问
GRANT ALL PRIVILEGES ON *.* TO 'root' @'%' IDENTIFIED BY 'RZXrzx1218' WITH GRANT OPTION;
这里的密码请自行替换
use mysql; // 进入数据库 select host,user from user; 【多出1条远程登录用户记录】
执行刷新
mysql>flush privileges;
在Linux命令行中将3306端口打开例外
/sbin/iptables -I INPUT -p tcp --dport 3306 -j ACCEPT firewall-cmd --zone=public --add-port=3306/tcp --permanent 重启后不失效 firewall-cmd --reload
这里我直接关闭了防火墙,不需要设置,如需要请自行设置
设置开机自启动
添加服务mysql
chkconfig --add mysql
设置mysql服务为自动
chkconfig mysql on
重启查看进程
ps -ef|grep mysql
将mysql添加到环境变量
修改/etc/profile文件使其永久性生效,并对所有系统用户生效,在文件末尾加上如下两行代码
vim /etc/profile
PATH=$PATH:/usr/local/mysql/bin
export PATH
执行 命令source /etc/profile或 执行点命令 ./profile使其修改生效,执行完可通过echo $PATH命令查看是否添加成功。
source /etc/profile或 ./profile
echo $PATH
忘记mysql密码时修改密码
1.修改MySQL的登录设置:
vim /etc/my.cnf
在[mysqld]的段中加上一句:
skip-grant-tables
2.重新启动mysql
service mysql restart
3.登录并修改MySQL的root密码
use mysql;
update mysql.user set authentication_string=password('RZXrzx1218') where user='root';
flush privileges;
quit
4.将MySQL的登录设置修改回来
vim /etc/my.cnf
将刚才在[mysqld]的段中加上的skip-grant-tables注释
保存并且退出vim
5.重新启动mysql
service mysql restart
密码修改成功