1.CentOS7一般会自带数据库 mariadb,MariaDB数据库管理系统是MySQL的一个分支,完全兼容mysql但这会影响我们安装mysql,所以在安装mysql前,要把mariadb删除干净
执行如下命令查看是否有安装 mariadb
# rpm -qa|grep mariadb
我的系统上显示已安装
mariadb-libs-5.5.56-2.el7.x86_64
需要执行如下命令卸载删除
# yum remove mariadb-libs-5.5.56-2.el7.x86_64
2.上传mysql-5.6.40-linux-glibc2.12-x86_64.tar.gz 到 目录 /usr/local
执行如下命令解压文件; 并重命名解压后的目录为 mysql; 完成后目录为 /usr/local/mysql
# tar -zxvf mysql-5.6.40-linux-glibc2.12-x86_64.tar.gz
3.执行如下命令添加mysql用户组和用户
# groupadd mysql;
# useradd -r -g mysql mysql
4.压缩包解压后里面有个目录是data,即/usr/local/mysql/data,我们就用该目录存放数据库数据
5.执行如下命令授权 /usr/local/mysql 目录给用户 mysql
# chown -R mysql:mysql /usr/local/mysql
6.执行如下命令初始化数据库
进入mysql目录
# cd /usr/local/mysql
# ./bin/mysqld --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data
******有警告
[Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).
意思是explicit_defaults_for_timestamp 不推荐默认,所以最好加上该参数值的设置
改初始化命令如下
# ./bin/mysqld --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --explicit_defaults_for_timestamp=true
******有报错
[ERROR] Can't open the mysql.plugin table. Please run mysql_upgrade to create it.
[ERROR] Fatal error: Can't open and lock privilege tables: Table 'mysql.user' doesn't exist
需要先初始化权限相关等数据库表
执行如下命令
#./scripts/mysql_install_db --user=mysql (注意此命令在/usr/local/mysql目录下执行)
执行成功,此时可以看到/usr/local/mysql目录下生成了my.cnf 文件
此时再执行
#./bin/mysqld --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --explicit_defaults_for_timestamp=true
最后显示
./bin/mysqld: ready for connections.
Version: '5.6.40' socket: '/tmp/mysql.sock' port: 3306 MySQL Community Server (GPL)
表示数据库安装启动成功
此时再打开一个ssh会话,登录到服务器
执行如下命令
# cd /usr/local/mysql
# ./bin/mysql
显示不需要密码就可以链接上mysql服务器,说明mysql服务器安装成功。
7.如下方法 关闭上一步中成功启动起来的mysql服务器,
查找mysql服务器的进程
# ps -ef | grep mysql
显示如上图 6210 就是已运行的mysql的进程id
# kill 6210
此时如果执行 service mysql start 命令,仍旧不能成功启动 mysql服务器,显示报错
Redirecting to /bin/systemctl start mysql.service
Failed to start mysql.service: Unit not found.
这是因为 /etc/init.d 中没有 mysql 的服务
执行如下命令,复制的同时重命名
# cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql
然后执行
# service mysql start
显示
Starting MySQL. SUCCESS!
mysql服务成功启动
另外,也可以用 service mysql stop 来停止mysql服务器了
8.给mysql root用户设置密码
上面安装成功的 mysql 不需要密码就可以登录
下面给mysql 的root用户设置密码
# mysql
# use mysql
# update user set password=password('pwd') where user='root'; (pwd是密码明文)
# flush privileges;
# exit;
此时再输入mysql 已经不能登录mysql服务器了,需要用户名和密码了
# mysql -u root -p
按提示输入密码即可登录
mysql-5.6.40-linux-glibc2.12-x86_64.tar.gz 下载 https://pan.baidu.com/s/195cYwF9TtM7GA2HLlcIRKg