MySQL的官网不容易进去,所以推荐去国内镜像站下载MySQL的安装包
点我下载MySQL
进入网址之后,选择MySQL5.6的版本
将安装好的MySQL压缩包放到linux服务器或者你的虚拟机上,并解压到/usr/local/目录下
到/usr/local/目录下将刚刚解压出来的mysql文件夹名字改为mysql
新建一个mysql用户组,并在mysql用户组下新建一个mysql用户
groupadd mysql
useradd -r -g mysql mysql
将刚刚重命名的mysql的文件夹的所有者改为mysql组下的mysql用户
chown -R mysql:mysql /usr/local/mysql
进入到/usr/local/mysql/
目录下执行以下命令
./script/mysql_install_db --user=mysql
初始化完成之后,mysql文件夹中会多出一个my.cnf配置文件,这个配置文件可以用来定义mysql的一些相关配置
数据库初始化完毕之后,仍然在/usr/local/mysql
目录下执行以下命令开启mysql的服务
./support-files/mysql.server start
MySQL初始化完成之后,仍然在/usr/local/mysql/
这个目录下执行
./bin/mysql -uroot -p
新安装的MySQL是没有密码的,在跳出输入密码的提示之后,直接按回车就可以进入MySQL的cmd页面了
进入到mysql页面之后执行以下命令
use mysql
切换到mysql数据库,之后执行以下命令
update user set password=password('你想设置的密码') where user='root';
执行语句,语句执行完之后,继续执行以下命令(下面这个是刷新权限数据的命令,如果不执行,刚刚修改密码的操作不会成功的)
flush privileges;
权限刷新成功之后,退出MySQL数据库,重新登录就需要输入刚刚设置的密码了
新安装的MySQL是不能远程连接的,需要自己设置一下才可以
进入/usr/local/mysql
目录下,执行以下命令登录数据库
./bin/mysql -uroot -p
数据库成功登录之后,执行以下语句,切换到mysql数据库
use mysql
切换到mysql数据库之后,执行以下命令,开启MySQL的远程连接
update user set host='%' where user='root';
语句执行完之后,退出MySQL,在mysql文件夹下执行以下语句,重启MySQL服务即可进行远程连接MySQL操作
./support-files/mysql.server restart
将mysql服务添加到service服务中的目的是为了使用service mysql start命令快捷启动mysql服务
操作方法:进入/usr/local/mysql/
目录,执行以下命令
cp ./support-files/mysql.server /etc/init.d/mysqld
命令执行完毕,就可以使用service mysql start命令启动mysql服务
解压压缩包并创建用户的步骤与5.xx版本步骤相同,请参考步骤2.1~2.4
当mysql用户授权完毕之后,进入到/usr/local/mysql
(mysql安装目录名必须叫做mysql哦,不然使用默认配置初始化的时候会出错)目录,并执行以下命令对数据库进行初始化。
./bin/mysqld --initialize --user=mysql
注意:
1.如果linux安装mysql8过程中遇到error while loading shared libraries: libtinfo.so.5类似的错误,涉及到/usr/lib64/libtinfo.so.5文件的,可以尝试执行ln -s /usr/lib64/libtinfo.so.6.1 /usr/lib64/libtinfo.so.5命令解决
2.数据库初始化完成之后,终端窗口中会显示出数据库的初始密码,这个初始密码可以用作步骤3.3的登录密码
数据库初始化完毕之后,仍然在/usr/local/mysql
目录下执行以下命令开启mysql的服务
./support-files/mysql.server start
仍然在/usr/local/mysql
目录下执行以下命令,登录数据库
./bin/mysql -uroot -p
然后输入刚刚步骤3.2获取的初始密码,就可以成功登录数据库
第一次登录数据库,数据库会要求重新设置数据库密码,否则无法执行任何sql语句。执行以下命令,就可以修改初始密码了
mysql> alter user 'root'@'localhost' identified with mysql_native_password by '你想设置的数据库密码';
mysql> flush privileges;
注意:
- 1.新版本的mysql使用的密码规则改成了caching_sha2_password,这个规则在使用命令行登录mysql的时候没有任何问题,但是如果使用navicat连接,navicat就会报2059错误码,无法连接远程数据库
- 2.解决方法:一般是将mysql的密码加密规则改成mysql_native_password,这样navicat就可以照常连接了
远程连接和将mysql服务加入到linux的service服务操作方法与步骤2.8、2.9一样,请参考以上步骤执行
mysql8使用以上方式启动mysql服务,默认是没有加载配置文件的,需要手动创建mysql配置文件
查看mysql配置文件加载顺序命令
mysql --help | grep -i 'my.cnf'
执行vim /etc/my.cnf
创建mysql配置文件
以下为配置文件示例
[client]
port=3306
socket=/usr/local/mysql/mysql.sock
default-character-set = utf8
[mysqld]
basedir = /usr/local/mysql
datadir = /usr/local/mysql/data
port=3306
server-id = 1
socket=/usr/local/mysql/mysql.sock
[mysql]
default-character-set = utf8
注意:如果启动mysql的时候提示错误信息
Starting MySQL..... ERROR! The server quit without updating PID file (/usr/local/mysql/data/VM-16-11-centos.pid)
,可以尝试一下加上[client]和[mysql]两个配置下的default-character-set = utf8
配置