前提:
1、在虚拟机centos7上安装MySQL必须保证主机与虚拟机之间是可以互相ping通的
2、centos的版本是centos7:http://isoredirect.centos.org/centos/7/isos/x86_64/
centos7
centos7
MySQL的版本是MySQL5.5.48:https://downloads.mysql.com/archives/community/
MySQL5.5.48
MySQL5.5.48
安装步骤:
1、上传下载到的MySQL tar包到虚拟机centos上并解压到指定的目录下
进入文件所在目录执行解压命令
[root@localhost ~]# tar -xvf MySQL-5.5.48-1.linux2.6.x86_64.rpm-bundle.tar(自己mysql安装包的名字)
MySQL-client-5.5.48-1.linux2.6.x86_64.rpm
MySQL-shared-compat-5.5.48-1.linux2.6.x86_64.rpm
MySQL-test-5.5.48-1.linux2.6.x86_64.rpm
MySQL-server-5.5.48-1.linux2.6.x86_64.rpm
MySQL-embedded-5.5.48-1.linux2.6.x86_64.rpm
MySQL-devel-5.5.48-1.linux2.6.x86_64.rpm
MySQL-shared-5.5.48-1.linux2.6.x86_64.rpm
2、卸载centos7自带的mariadb,不然安装MySQL的时候会和mariadb文件相冲突导致安装不成功。
查看系统中是否有mariadb
[root@localhost mysql]# rpm -qa | grep mariadb
mariadb-libs-5.5.56-2.el7.x86_64
完全卸载mariadb
[root@localhost mysql]# rpm -e mariadb-libs-5.5.56-2.el7.x86_64 --nodeps
安装依赖
[root@localhost mysoft]# yum install libaio
3、安装MySQL服务端和客户端
[root@localhost mysql]# rpm -ivh MySQL-server-5.5.48-1.linux2.6.x86_64.rpm
[root@localhost mysql]# rpm -ivh MySQL-client-5.5.48-1.linux2.6.x86_64.rpm
4、开启MySQL服务
开启服务
[root@localhost mysql]# service mysql start
查看服务状态
[root@localhost mysql]# service mysql status
SUCCESS! MySQL running (1783)
5、修改密码
[root@localhost mysql]# /usr/bin/mysql_secure_installation
NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MySQL
SERVERS IN PRODUCTION USE! PLEASE READ EACH STEP CAREFULLY!
In order to log into MySQL to secure it, we’ll need the current
password for the root user. If you’ve just installed MySQL, and
you haven’t set the root password yet, the password will be blank,
so you should just press enter here.
Enter current password for root (enter for none):(直接回车,因为当前本来就没密码)
OK, successfully used password, moving on…
Setting the root password ensures that nobody can log into the MySQL
root user without the proper authorisation.
Set root password? [Y/n] y
New password:(新密码)
Re-enter new password:(确认新密码)
Password updated successfully!
Reloading privilege tables…
… Success!
By default, a MySQL installation has an anonymous user, allowing anyone
to log into MySQL without having to have a user account created for
them. This is intended only for testing, and to make the installation
go a bit smoother. You should remove them before moving into a
production environment.
Remove anonymous users? [Y/n] y
… Success!
Normally, root should only be allowed to connect from ‘localhost’. This
ensures that someone cannot guess at the root password from the network.
Disallow root login remotely? [Y/n] n
… skipping.
By default, MySQL comes with a database named ‘test’ that anyone can
access. This is also intended only for testing, and should be removed
before moving into a production environment.
Remove test database and access to it? [Y/n] y
- Dropping test database…
… Success!
- Removing privileges on test database…
… Success!
Reloading the privilege tables will ensure that all changes made so far
will take effect immediately.
Reload privilege tables now? [Y/n] y
… Success!
Cleaning up…
All done! If you’ve completed all of the above steps, your MySQL
installation should now be secure.
Thanks for using MySQL!
6、登录测试
[root@localhost mysql]# mysql -uroot -p123
7、开启远程MySQL数据库访问
进入mysql
[root@localhost mysql]# mysql -uroot -p123
打开远程访问权限
mysql>GRANT ALL PRIVILEGES ON . TO ‘root’@’%'IDENTIFIED BY ‘123’ WITH GRANT OPTION;
再次查询MySQL数据库远程访问是否授权:
mysql>select * from mysql.user where user=‘root’ \G;
可以看到有一条记录HOST值为:%,说明授权了。
***************** 5. row *****************
Host: %
User: root
…
8.防火墙开放MySQL使用的3306端口
[root@localhost mysoft]# firewall-cmd --zone=public --add-port=3306/tcp --permanent
重启防火墙
[root@localhost mysoft]# systemctl restart firewalld.service
查询防火墙开放的端口:
[root@localhost mysql]# firewall-cmd --list-ports
3306/tcp
到这里,主机MySQL客户端就可以顺利连接centos7的MySQL数据库了。
主机客户端成功连接centos7MySQL数据库
主机客户端成功连接centos7MySQL数据库
注意的点:大小写区分
MYSQL在LINUX下数据库名、表名、列名、别名大小写规则如下:
1.数据库名与表名是严格区分大小写的
2.表的别名是严格区分大小写的
3.列名与列的别名在所有的情况下均是忽略大小写的
4.变量名也是严格区分大小写的
查看大小写区分
mysql> show variables like “%case%”;
lower_case_table_names 0-区分大小写(默认0) 1-不区分
解决方式:
1.复制mysql配置文件到etc目录下
cp /usr/share/mysql/my-medium.cnf /etc/my.cnf
2.编辑/etc/my.cnf文件,在[mysqld]节点下添加 lower_case_table_names=1 参数
3.重启mysql:service mysql restart
总结:
本篇主要讲述了centos7安装MySQL数据库,前提是centos的版本和MySQL的版本必须一致才能按照以上的方法,因为不同版本的Linux、MySQL只有其中一个不同,安装的方式就有可能不一样。
安装MySQL数据库:
1、采用的是rpm安装
2、安装前需卸载掉centos7自带的mariadb,MariaDB数据库管理系统是MySQL的一个分支,不然安装的时候会互相冲突导致安装不成功。
3、安装
rpm -ivh MySQL-server-5.5.48-1.linux2.6.x86_64.rpm
rpm -ivh MySQL-client-5.5.48-1.linux2.6.x86_64.rpm
4、修改密码前需开启服务,开启服务后方可修改密码
5、本地登录MySQL数据库,OK没有问题
远程主机登录出现无法访问的情况,需设置防火墙开启3306端口可访问
其次,设置本地MySQL数据库运行远程主机登录访问授权。
以上就是安装的大体步骤,原理是一样的。
补充
关于卸载:
卸载步骤:
1、查看已经安装的MySQL服务:
[root@localhost mysql]# rpm -qa | grep -i mysql
MySQL-client-5.5.48-1.linux2.6.x86_64
MySQL-server-5.5.48-1.linux2.6.x86_64
2、卸载MySQL服务
[root@localhost mysql]# rpm -e MySQL-server-5.5.48-1.linux2.6.x86_64
[root@localhost mysql]# rpm -e MySQL-client-5.5.48-1.linux2.6.x86_64
[root@localhost mysql]# rpm -qa | grep -i mysql
[root@localhost mysql]#
注意:删除的时候没有带.rpm的后缀
3、查找MySQL相关文件夹
[root@localhost mysql]# find / -name mysql
/etc/selinux/targeted/active/modules/100/mysql
/usr/lib64/mysql
/var/lib/mysql
/var/lib/mysql/mysql
/root/soft/mysql
注意:/root/soft/mysql是我们手动新建用来存放MySQL rpm的,所以并不需要把它卸载。
4、删除MySQL相关文件夹
[root@localhost mysql]# rm -rf /etc/selinux/targeted/active/modules/100/mysql
[root@localhost mysql]# rm -rf /usr/lib64/mysql
[root@localhost mysql]# rm -rf /var/lib/mysql
[root@localhost mysql]# rm -rf /var/lib/mysql/mysql
[root@localhost mysql]# rm -rf /usr/lib64/mysql
5、重新安装
[root@localhost mysql]# rpm -ivh MySQL-server-5.5.48-1.linux2.6.x86_64.rpm
[root@localhost mysql]# rpm -ivh MySQL-client-5.5.48-1.linux2.6.x86_64.rpm
接下来的流程就和上面的安装一样了。