我这边下载的是5.7.35版本的:
执行命令
wget https://downloads.mysql.com/archives/get/p/23/file/mysql-5.7.35-linux-glibc2.12-x86_64.tar.gz
如果要下载其他版本的就去mysql官网选择下载:https://downloads.mysql.com/archives/community/
解压自己刚才下载的文件:
tar -zxvf mysql-5.7.35-linux-glibc2.12-x86_64.tar.gz
移动文件到usr/local目录下,并重命名文件
mv mysql-5.7.35-linux-glibc2.12-x86_64.tar.gz /usr/local/mysql
在MySQL根目录下新建一个文件夹data,用于存放数据
mkdir data
创建 mysql 用户组和 mysql 用户
groupadd mysql
useradd -g mysql mysql
改变 mysql 目录权限
chown -R mysql.mysql /usr/local/mysql/
初始化数据库,创建mysql_install_db安装文件
mkdir mysql_install_db
chmod 777 ./mysql_install_db
初始化
bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data //初始化数据库
初始化之后记录一下临时密码
这里遇到了问题没有libnuma.so.1
zsh: command not found: mysqld
./bin/mysqld --initialize
./bin/mysqld: error while loading shared libraries: libnuma.so.1: cannot open shared object file: No such file or directory
2018-04-29 17:06:30 [WARNING] mysql_install_db is deprecated. Please consider switching to mysqld --initialize
2018-04-29 17:06:30 [ERROR] Can’t locate the language directory.
需要安装 libnuma
yum install libnuma
yum -y install numactl
yum install libaio1 libaio-dev
将mysql服务加入到系统服务管理里面,可以直接用systemctl start mysql 启动
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
chmod +x /etc/rc.d/init.d/mysqld
chkconfig --add mysqld
cp mysql.server /etc/init.d/mysql
chmod +x /etc/init.d/mysql
chkconfig --add mysql
修改my.cnf文件
vim /etc/my.cnf
[mysqld]
basedir = /usr/local/mysql
datadir = /usr/local/mysql/data
socket = /usr/local/mysql/mysql.sock
character-set-server=utf8
port = 3306
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
[client]
socket = /usr/local/mysql/mysql.sock
default-character-set=utf8
配置全局环境变量
vi /etc/profile
在 profile 文件底部添加如下两行配置,保存后退出
export PATH=$PATH:/usr/local/mysql/bin:/usr/local/mysql/lib
export PATH
设置环境变量立即生效
source /etc/profile
启动MySQL服务
systemctl start mysql
11.登录MySQL
mysql -uroot -p密码
修改密码:
SET PASSWORD FOR ‘root’@localhost=PASSWORD(‘123456’); #对应的换成你自己的密码即可了。
设置可以远程登录
use mysql
update user set host=’%’ where user=‘root’ limit 1;
刷新权限
flush privileges;
然后检查3306端口是否开放
netstat -nupl|grep 3306
开放3306端口
firewall -cmd --permanent --add-prot=3306/tcp
重启防火墙
firewall -cmd --reload