1. 下载 MySQL安装包 tar.gz
下载地址:https://dev.mysql.com/downloads/mysql/5.7.html#downloads
2. 上传到服务器并解压
上传服务器的目录看个人喜好,这里上传到 /opt/software。
tar -xvf mysql-5.7.30-linux-glibc2.12-x86_64.tar
解压后出来有两个压缩包 mysql-5.7.30-linux-glibc2.12-x86_64.tar.gz ,mysql-test-5.7.30-linux-glibc2.12-x86_64.tar.gz。这里将 mysql-5.7.30-linux-glibc2.12-x86_64.tar.gz 进行解压并重命名一下,解压可以指定目录.。
tar -zxvf mysql-5.7.30-linux-glibc2.12-x86_64.tar.gz -C /opt/local mv mysql-5.7.30-linux-glibc2.12-x86_64 mysql-5.7.30
3. 创建mysql用户组和用户并修改权限
groupadd mysql # 创建mysql用户组
useradd -r -g mysql mysql #创建mysql用户
mkdir -p mysql-5.7.30/data #创建数据目录,这里我创建到mysql安装目录里面,
chown mysql:mysql -R mysql-5.7.30 #赋予权限,如果数据目录不在mysql安装目录,则还需要将数据目录的权限赋予mysql组和用户
4. 配置/etc/my.cnf
vim /etc/my.cnf,配置内容如下
bind-address=0.0.0.0 port=3306 user=mysql basedir=/opt/local/mysql-5.7.30 # 安装目录 datadir=/opt/local/mysql-5.7.30/data #数据目录 socket=/tmp/mysql.sock log-error=/opt/local/mysql-5.7.30/mysql.err # 日志 pid-file=/opt/local/mysql-5.7.30/mysql.pid # 进程文件 #character config character_set_server=utf8mb4 symbolic-links=0 explicit_defaults_for_timestamp=true explicit_defaults_for_timestamp ge
更多my.cnf的配置详细可自行去查阅资料。
5. 初始化数据库
进入到mysql的bin目录执行
./mysqld --basedir=/opt/local/mysql-5.7.30 --datadir=/opt/local/mysql-5.7.30/data --user=mysql --initialize
查看初始化密码,在mysql.err文件
cat mysql-5.7.30/mysql.err # 初始密码在:最后一行root@localhost: 初始密码
6. 启动mysql,并更改root 密码
先将mysql.server放置到/etc/init.d/mysql中
cp mysql-5.7.30/support-files/mysql.server /etc/init.d/mysql
启动
service mysql start # 启动 chkconfig mysql on # 该命令可以开机自启动mysql ps -ef | grep mysql # 查看进程
7. 修改密码
./mysql -u root -p #bin目录下,然后输入密码,初始密码在mysql.err文件 # 在然后执行以下三个命令 SET PASSWORD = PASSWORD('123456'); ALTER USER 'root'@'localhost' PASSWORD EXPIRE NEVER; FLUSH PRIVILEGES;
如果连接Mysql出现 Access denied for user 'root'@'localhost'(using password: YES)错误,可参考 https://www.cnblogs.com/boris-et/p/8316953.html。
8. 远程连接
连接出现 Host ‘xxx.xxx.xx.x’ is not allowed to connect to this MySQL server的话,去服务器登录mysql,执行一下命令
use mysql #访问mysql库 update user set host = '%' where user = 'root'; #使root能再任何host访问 FLUSH PRIVILEGES; #刷新
再次远程连接成功!
额外可能用到的命令
service mysql stop # 停止mysql 服务 service mysql restart 重启mysql 服务
本文抄自:https://blog.csdn.net/qq_37598011/article/details/93489404