在Linux(Centos7)安装MySQL
查看系统环境
[root@localhost html]# cat /etc/redhat-release
CentOS Linux release 7.9.2009 (Core)
CentOS 7 版本将MySQL数据库软件从默认的程序列表中移除,用mariadb代替了
MariaDB数据库管理系统是MySQL的一个分支,主要由开源社区在维护,采用GPL授权许可。开发这个分支的原因之一是:甲骨文公司收购了MySQL后,有将MySQL闭源的潜在风险,因此社区采用分支的方式来避开这个风险。MariaDB的目的是完全兼容MySQL,包括API和命令行,使之能轻松成为MySQL的代替品。
所以centos7默认带mariadb, 可以 rpm -qa | grep mariadb 来看是否安装mariadb (rpm -qa 是用来查询所有已经安装的软件包)
从官网安装mysql-community-release-el7-5.noarch.rpm包
wget http://dev.mysql.com/get/mysql-community-release-el7-5.noarch.rpm #下载包
rpm -ivh mysql-community-release-el7-5.noarch.rpm
wget命令通过yum install wget 下载安装
wget 下载指点url的rpm包,若不指定下载路径,则默认安装在当前文件夹
从yum库中安装mysql-community-server (没这个启动不了服务)
yum install mysql-server
这步可能会花些时间,安装完成后就会覆盖掉之前的mariadb
注:若安装了mysql,则会完全覆盖之前的mariadb,yum install mysql 更改为下载Mysql(默认是mariadb)
若要删除用rpm,yum都行,但是可能处在删除不彻底,若要删除彻底,请百度
systemctl start mysqld
systemctl start mysqld.service
service mysqld start
service mysqld.service start
四种方法都能启动服务
systemctl status mysqld
systemctl status mysqld.service
service mysqld status
service mysqld.service status四种方法都能显服务状态
对mysql进行配置,和mariadb一样
mysql_secure_installation
如果之前安装了mysql 或者mariadb ,又没有删除用户的,原有的用户密码文件还在,可以直接mysql -u root -p
show variables like 'character%';
查看MySQL编码,有两个不是utf-8,如果输入中文会出现乱码
为了解决中文乱码问题
通过修改配置文件my.cnf , 在 [mysqld]下增加 character-set-server=utf8
有的是添加default-character-set=utf8 , 但是我用centos7后服务无法启动
再加上init_connect=’SET NAMES utf8’ (设定连接mysql数据库时使用utf8编码,以让mysql数据库为utf8运行)
然后ystemctl restart mysqld
查看编码 ,变为utf8了
不过 修改数据库的字符集之后,只对以后创建的库和表生效。对之前的库和表无能为力,需要手动修改已经的库和表字符集
修改库的字符集
alter database (database) character set 'utf8';
修改表的字符集
use demo;
alter table (table) convert to character set 'utf8';
注:在修改配置时,建议先停服务再修改!其实所有的服务都应该这么处理,良好的习惯,让我们避免遇到不必要的问题!
在用本地的navicat连接的时候如果出现2003(地址连接不上)错误,说明服务器的对应的端口号没有打开(3306),腾讯云可在线上页面管理中进行修改,添加对应开放的端口号,不用去用命令
其次是第二个错误:端口号已打开,但是MySQL中没有打开远程连接
mysql -u root -p
show databases;
use mysql;
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> select user,host from user;
+---------------+-----------+
| user | host |
+---------------+-----------+
| root | % |
| mysql.session | localhost |
| mysql.sys | localhost |
+---------------+-----------+
3 rows in set (0.00 sec)
host : 表示连接类型
%:表示所有远程通过 TCP方式的连接
IP地址:如 (192.168.1.2,127.0.0.1) 通过制定ip地址进行的TCP方式的连接
机器名:通过制定i网络中的机器名进行的TCP方式的连接
::1:IPv6的本地ip地址等同于IPv4的 127.0.0.1
localhost:本地方式通过命令行方式的连接,比如mysql -u xxx -p 123xxx 方式的连接
mysql> update user set host='%' where user ='root';
Query OK, 0 rows affected (0.00 sec)
|