1、下载二进制版本安装包。这里以 5.7.11 版本为例。
2、我装在/usr/local目录下面,把下载的mysql包放在这个文件夹下面,执行以下命令,期间建立一个mysql的软连接。
1 | # tar -zxvf mysql-5.7.12-linux-glibc2.5-x86_64.tar.gz |
3、在mysql创建一个data目录,用于存放数据文件。执行以下命令: 需要修改路径避免磁盘爆满
1 | # groupadd mysql |
软链接至数据分区:
1 | mkdir -p /data/mysql/{data,binlogs,log,etc,run} |
记住密码:
4、完成上述工作,配置my.cnf。修改 /etc/my.cnf。(也可从 /usr/local/mysql/support-files 子目录下找到一个叫 my-default.cnf 的配置样例文件,复制到/etc)执行命令。
1 | 复制命令: |
修改其中的内容如下:
1 | basedir = /usr/local/mysql |
5、配置文件修改保存好后,就可以启动服务了,确保当前目录为 /usr/local/mysql,然后运行以下命令:
1 | # bin/mysqld_safe --user=mysql & |
6、在mysql系统外,使用mysqladmin 。(进入到/usr/local/mysql/bin)
1 | # mysqladmin -u root -p password "newPwd" |
7、在 Linux 下为了安全,默认是不允许 MySQL 服务器本机以外的机器访问 MySQL 数据库服务的,因此需要重新授权 root 账号。方便其他机器远程访问 MySQL 服务器,MySQL 命令如下:
1 | mysql> grant all privileges on *.* to root@'%' identified by '1234'; |
这样就可以允许从其他机器用 root 账号远程登录 MySQL 服务器了,可以用下面的 MySQL 命令来验证一下:
1 | mysql> use mysql; |
进行到这里,只能到指定文件夹来开启or关闭mysql服务,所以设置开机启动。
8、centos 配置mysql 开机启动命令
运行mysql.server脚本,mysql.server脚本通过调用mysqld_safe启动服务器,该脚本可以通过参数start和stop指定启动还是关闭。mysql.server脚本在MySQL安装目录下的share/mysql目录中,如果是采用源码安装的MySQL,则可以在support-files目录里找到。如果想使用mysql.server,则必须把它复制到合适的运行级别目录中
1 | # cp mysql.server /etc/init.d/mysqld |
如上配置之后,就可以利用以下命令启动和关闭MySQL实例。
1 | # service mysqld start/stop |
使用chkconfig命令配置开机自动启动。
1 | # chkconfig --add mysqld |
运行以下命令检查是否正确启用。
1 | chkconfig --list mysqld |
运行以下命令关闭MySQL。
1 | mysqladmin -p -u root shutdown |
9、开启3306端口,centos7使用firewall命令更快捷。
1 | firewall-cmd --zone=public --add-port=3306/tcp --permanent |
在mysql8.0创建用户和授权和之前不太一样了,其实严格上来讲,也不能说是不一样,只能说是更严格,mysql8.0需要先创建用户和设置密码,然后才能授权.
1 | select host, user, authentication_string, plugin from user; |
查看表格中 root 用户的 host,默认应该显示的 localhost,只支持本地访问,不允许远程访问。
授权 root 用户的所有权限并设置远程访问
1 | GRANT ALL ON *.* TO 'root'@'%'; |
输入访问的 host 和密码,报 2059 错误
出现这个原因是mysql8 之前的版本中加密规则是mysql_native_password,而在mysql8之后,加密规则是caching_sha2_password.
解决问题方法有两种,一种是升级navicat驱动,一种是把mysql用户登录密码加密规则还原成mysql_native_password.
这里采用第二种方式 :
1 | 修改加密规则: |