1、卸载mariadb和安装gcc+等依赖
#列出所有被安装的rpm package
rpm -qa | grep mariadb
#卸载
rpm -e mariadb-libs-5.5.37-1.el7_0.x86_64
错误:依赖检测失败:
libmysqlclient.so.18()(64bit) 被 (已安裝) postfix-2:2.10.1-6.el7.x86_64 需要
libmysqlclient.so.18(libmysqlclient_18)(64bit) 被 (已安裝) postfix-2:2.10.1-6.el7.x86_64 需要
#强制卸载,因为没有--nodeps
rpm -e --nodeps mariadb-libs-5.5.37-1.el7_0.x86_64
安装gcc+等依赖
yum -y update gcc
yum -y install gcc+ gcc-c++
2、下载安装包
http://dev.mysql.com/downloads/mysql/#downloads
推荐下载通用安装方法的TAR包
3、检查库文件是否存在,如有删除。
[root@localhost Desktop]$ rpm -qa | grep mysql
mysql-libs-5.1.52-1.el6_0.1.x86_64
[root@localhost ~]$ rpm -e mysql-libs-5.1.52.x86_64 --nodeps
[root@localhost ~]$
4、检查mysql组和用户是否存在,如无创建。
[root@localhost ~]$ cat /etc/group | grep mysql
mysql:x:490:
[root@localhost ~]$ cat /etc/passwd | grep mysql
mysql:x:496:490::/home/mysql:/bin/bash
以上为默认存在的情况,如无,执行添加命令:
[root@localhost ~]$groupadd mysql
[root@localhost ~]$useradd -r -g mysql mysql
//useradd -r参数表示mysql用户是系统用户,不可用于登录系统。
5、解压TAR包,更改所属的组和用户
[root@localhost ~]$ cd /usr/local/
[root@localhost local]$ tar xvfz mysql-5.7.12-linux-glibc2.5-x86_64.tar.gz
[root@localhost local]$ mv mysql-5.7.12-linux-glibc2.5-x86_64 mysql
[root@localhost local]$ chown -R mysql mysql/
[root@localhost local]$ chgrp -R mysql mysql/
[root@localhost local]$ cd mysql/
6、安装和初始化数据库
mysql5.7之前版本初始化配置表命令:
script/mysql_install_db --user=mysql --basedir=/Ultrapower/test/mysql --datadir=/Ultrapower/test/mysql/data/
--user 启动mysql的用户
--basedir mysql安装目录
--datadir mysql数据仓库目录
mysql5.7:
[root@rhel5-32 mysql]# mkdir data
[root@rhel5-32 mysql]# bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data
执行完上面的命令后,自动生产mysql数据库的root账号密码如下:
2017-09-11T06:28:15.963482Z 1 [Note] A temporary password is generated for root@localhost: oCxw1UxeXX>p
7、将mysql/目录下除了data/目录的所有文件,改回root用户所有,mysql用户只需作为mysql/data/目录下所有文件的所有者。
[root@rhel5-32 mysql]# chown -R root .
[root@rhel5-32 mysql]# chown -R mysql data
8、复制配置项
MySQL 5.7.18以后的版本没有my-default.cnf也能运行,所以此步骤省略。
9、将mysqld服务加入开机自启动项。
将{mysql}/ support-files/mysql.server 拷贝为/etc/init.d/mysql并设置运行权限,这样就可以使用service mysql命令启动/停止服务,
否则就只能使用{mysql}/bin/mysqld_safe &命令来启动服务
还需要把mysql.server中basedir的相关路径,改为自定义的路径,默认路径是/usr/local/mysql
[plain] view plain copy
#cp mysql.server /etc/init.d/mysql
#chmod +x /etc/init.d/mysql
把mysql注册为开机启动的服务
[plain] view plain copy
#chkconfig --add mysql
查看是否添加成功
[plain] view plain copy
[root@rhel5-32 mysql]# chkconfig --list mysql
mysqld 0:关闭 1:关闭 2:启用 3:启用 4:启用 5:启用 6:关闭
10、配置环境变量 添加如下内容
shell> vi /etc/profile
export MYSQL_HOME="/usr/local/mysql"
export PATH="$PATH:$MYSQL_HOME/bin"
Shell> source /etc/profile
或执行点命令 ./profile使其修改生效,执行完可通过echo $PATH命令查看是否添加成功。
11、mysql服务的开启和关闭
#/etc/init.d/mysql start 或者 serivce mysql start 或者 bin/mysqld_safe&
#/etc/init.d/mysql stop 或者 service mysql stop 或者 bin/mysqladmin -uroot -p
注:在bin/mysqld_safe&这个启动脚本里已默认设置--user=mysql;在脚本末尾加&表示设置此进程为后台进程,区别就是在控制台输入bg,即可将当前进 程转入后台, 当前shell 可进行其他操作。
bin/mysqladmin -uroot -p (注意此时的root是指mysql的root用户)
12、开启防火墙
mysql 3306端口的外部访问 CentOS升级到7之后,使用firewalld代替了原来的iptables。下面记录如何使用firewalld开放Linux端口
shell> firewall-cmd --zone=public --add-port=3306/tcp --permanent
shell> firewall-cmd --reload #重启防火墙
13、登录mysql,修改密码(在启动mysql后)
[root@DB-Server tmp]# mysql -u root -p
Enter password: (此处输入安装时随机生成的密码)
修改密码:
mysql> SET PASSWORD = PASSWORD('root');
14、添加远程访问权限
mysql> use mysql;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A
Database changed
mysql> update user set host = '%' where user = 'root';
Query OK, 1 row affected (0.00 sec)
Rows matched: 1 Changed: 1 Warnings: 0
mysql> select host, user from user;
重启mysql服务
[root@mwj /]# service mysql restart
Shutting down MySQL.. SUCCESS!
Starting MySQL. SUCCESS!