我是使用二进制文件安装的MySQL,就是在官网直接下载tar包,解压配置后皆可以使用
1.下载安装包,解压,并改名。
使用此命令直接下载安装包,首先你的虚拟机要可以连接外网才可以。
wget https://cdn.mysql.com//Downloads/MySQL-5.7/mysql-5.7.18-linux-glibc2.5-x86_64.tar.gz
下载完成之后,解压
tar -zxvf mysql-5.7.18-linux-glibc2.5-x86_64.tar.gz -C /usr/local/
改名:
mv mysql-5.7.18-linux-glibc2.5-x86_64 mysql-5.7.18
2、配置MySQL
1.首先检查centos中有没有安装mariadb,一般cenos默认是有安装的。检查有的话直接卸载了。
yum list installed | grep mariadb
yum -y remove mariadb-libs.x86_64
mariadb数据库是mysql的分支。是免费开源的。mariadb和msyql 会有冲突,所以要先卸载了。
2.配置MySQL
- 在MySQL的安装根目录下创建data文件夹用来存放MySQL初始化的数据和创建的表数据。
mkdir data
- 创建用户执行 mysqld 命令,
adduser mysql
创建一个 MySQL,可以通过id mysql或者cat /etc/passwd 查看MySQL用户信息。
- 初始化MySQL,最重要的一步
./mysqld --initialize --user=mysql --datadir=/usr/local/mysql-5.7.18/data
--basedir=/usr/local/mysql-5.7.18
参数说明: --initialize 初始化 mysql,创建 mysql 的 root, 随机生成密码。记住密码,登录 msyql 使用。 --user 执行 msyqld 命令的 linux 用户名 --datadir : mysql 数据文件的存放位置,目录位置参照本机的设置。 --basedir : msyql 安装程序的目录,目录位置参照本机的设置。 该命令执行后,会生成一个临时的 mysql 数据库 root 用户的密码,请先拷贝出来记住,后续第一次登 录 mysql 需要使用
:47.738137Z 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).
2019-01-26T08:21:47.935394Z 0 [Warning] InnoDB: New log files created, LSN=45790
2019-01-26T08:21:47.976154Z 0 [Warning] InnoDB: Creating foreign key constraint system tables.
2019-01-26T08:21:48.037169Z 0 [Warning] No existing UUID has been found, so we assume that this is the first time that this server has been started. Generating a new UUID: 6c9ea186-2143-11e9-9d44-000c2968a728.
2019-01-26T08:21:48.038044Z 0 [Warning] Gtid table is not ready to be used. Table 'mysql.gtid_executed' cannot be opened.
2019-01-26T08:21:48.038511Z 1 [Note] A temporary password is generated for root@localhost: EahwrQq##2Ot
其中EahwrQq##2Ot就是root用户生成的临时密码,执行此命令保证data文件下是空,否则会执行不成功的。
- 启用安全功能
./mysql_ssl_rsa_setup --datadir=/usr/local/mysql-5.7.18/data
- 修改 mysql 安装目录的权限
chown -R mysql:mysql /usr/local/mysql-5.7.18/
表示这个文件夹被MySQL用户所属
- 启动MySQL
./mysqld_safe &
后台启动MySQL
通过ps -ef | grep mysql查看MySQL是否启动
- 使用 mysql 客户端进入 mysql
/mysql -uroot -p
输入刚才生成的临时密码,进入MySQL客户端
- 修改密码
alter user 'root'@'localhost' identified by '123456';
命令语法:alter user '用户名'@'主机域名或ip' identified by '新密码
- 授权远程访问
grant all privileges on *.* to root@'%' identified by '123456';
其中*.* 的第一个*表示所有数据库名,第二个*表示所有的数据库表; root@'%' 中的root表示用户名,%表示ip地址,%也可以指定具体的ip地址,
- 更新授权信息
flush privileges;
至此,MySQL配置基本完成。完成可以使用
3.MySQL启动,关闭
启动:在bin目录下执行
./mysqld_safe &
关闭:
./mysqladmin -uroot -p shutdown
输入密码即可关闭MySQL,也可以进入MySQL客户端后执行shutdown也可以关闭MySQL服务。
4.MySQL启动报错
启动MySQL报这个错
[root@localhost bin]# 2019-01-26T07:26:00.767337Z mysqld_safe Logging to '/usr/local/mysql-5.7.18/data/localhost.localdomain.err'.
2019-01-26T07:26:00.793990Z mysqld_safe Starting mysqld daemon with databases from /usr/local/mysql-5.7.18/data
2019-01-26T07:26:03.312256Z mysqld_safe mysqld from pid file /usr/local/mysql-5.7.18/data/localhost.localdomain.pid ended
这个原因目前我也不清楚,重新初始化一遍MySQL,如果初始化不行的话,我的做法是卸掉原来的数据库重新装一遍,
find / -name mysql
执行此命令删掉所有的MySQL的文件夹,再重新装,负责还会报错。