卸载原有mysql
因为mysql数据库在Linux上实在是太流行了
所以目前下载的主流Linux系统版本基本上都集成了mysql数据库在里面 我们可以通过如下命令来查看我们的操作系统上是否已经安装了mysql数据库rpm -qa | grep mysql // 这个命令就会查看该操作系统上是否已经安装了mysql数据库
有的话,我们就通过 rpm -e 命令 或者 rpm -e --nodeps 命令来卸载掉
// 普通删除模式 rpm -e mysql-libs-5.1.73-3.el6_5.x86_64 // 强力删除模式,如果使用上面命令删除时,提示有依赖的其它文件,则用该命令rpm -e --nodeps mysql-libs-5.1.73-3.el6_5.x86_64
安装Mysql
首先,我们可以使用yum命令来安装:
yum install -y mysql-server mysql mysql-devel
但是,这里我们使用离线安装的方式安装mysql
// 使用wget命令从mysql官网下载离线包(地址可能不一定是下面这个,请自行更改)wget https://cdn.mysql.com//Downloads/MySQL-5.7/mysql-5.7.24-linux-glibc2.12-x86_64.tar.gz// 解压tar -xvf mysql-5.7.24-1.el6.x86_64.rpm-bundle.tar// 安装工具包以及兼容性相关包rpm -ivh mysql-community-common-5.7.24-1.el6.x86_64.rpmrpm -ivh mysql-community-libs-5.7.24-1.el6.x86_64.rpmrpm -ivh mysql-community-libs-compat-5.7.24-1.el6.x86_64.rpm// 安装mysql服务端rpm -ivh mysql-community-server-5.7.24-1.el6.x86_64.rpm// 安装mysql客户端rpm -ivh mysql-community-client-5.7.24-1.el6.x86_64.rpm// 启动mysqlservice mysqld start
至此,mysql安装完毕
配置mysql
mysql安装完毕之后,还需要做一些基本配置,如下:
// 创建配置文件cp /usr/share/mysql/my-default.cnf /etc/my.cnf// 修改配置文件/etc/my.cnf,最后一行加上lower_case_table_names=1 #表名不区分大小写// 由于mysql5.7有弱密码限制,可以在配置文件中加上下面内容,关闭限制[mysqld]validate_password=off// 查看root用户初始密码并修改root密码grep 'temporary password' /data/mysql/error.log set password = password('your_password');// 创建用户并授权grant all on *.* to name@'%' identified by "password" with grant option;flush privileges;
编码格式以及其他
查看字符集用 show variables like 'character%';
查看数据库支持的字符集
show character set; 或者:show char set;
最简单的完美修改方法,修改mysql的 /etc/my.cnf 文件中的字符集键值
// 在[mysqld]字段里加入character-set-server=utf8,如下: [mysqld] character-set-server=utf8
查看MySQL当前状态:status
修改character_set_connection、character_set_client、character_set_results三值
set names utf8;相当于:SET character_set_client = charset_name; SET character_set_results = charset_name; SET character_set_connection = charset_name;
查看数据库表的字符集设置:
show full columns from tablename;show create table [表名];
查看数据库编码:show create database [库名];
创建时指定字符集:
CREATE DATABASE [库名] DEFAULT CHARACTER SET utf8;如果不指定默认的字符集,则系统会根据character_set_database的值进行设置CREATE TABLE [库名].[表名] (id VARCHAR(20) NOT NULL,name VARCHAR(20) ) ENGINE=InnoDB DEFAULT CHARSET=utf8;CREATE TABLE [库名].[表名] (id varchar(20) NOT NULL,name varchar(20) CHARACTER SET utf8 );
修改字符集:
ALTER DATABASE [库名] CHARACTER SET [字符集];ALTER TABLE [表名] CHARACTER SET [字符集];ALTER TABLE [表名] MODIFY [列名] VARCHAR(5) CHARACTER SET [字符集];
其他:
// mysql可以有:select 1;// 这样的语法,而且不会报错,等同于:select 1 from dual;// mysql里面也有虚拟表dual,但是select时不写也行