MySQL 是一个真正的多线程 、多用户的SQL数据库服务,凭借其高性能 、高可靠和易用于使用的特性,称为服务器领域中最受欢迎的开源数据库系统。

MySQL 编译安装

MySQL 5.X系列版本的使用最为广泛,稳定性、兼容性都不错,此处选用mysql-5.6.36.tar.gz源码包

  • 准备工作

    确认没有使用RPM方式安装mysql-server、mysql
    安装光盘自带的ncurses-devel包

[root@ns1 ~]# rpm -q mysql-server mysql
未安装软件包 mysql-server 
未安装软件包 mysql 
[root@ns1 Packages]# rpm -ivh ncurses-devel-5.9-14.20130511.el7_4.x86_64.rpm 
  • 安装cmake包
[root@ns1 ~]# tar zxf cmake-2.8.6.tar.gz 
[root@ns1 ~]# cd cmake-2.8.6
[root@ns1 cmake-2.8.6]# ./configure
[root@ns1 cmake-2.8.6]# gmake && gmake install

源码编译及安装

(1). 创建运行用户
为了加强数据库服务的权限控制,建议使用专门的运行用户,如 mysql。此用户不需要直接登录到系统,可以不创建宿主文件夹。

[root@ns1 ~]# groupadd mysql
[root@ns1 ~]# useradd -M -s /sbin/nologin mysql -g mysql

(2). 解包
将下载的 mysql源码包解压,释放到/usr/src 目录下,并切换到展开后的源码目录。

[root@ns1 ~]# tar zxf mysql-5.6.36.tar.gz -C /usr/src/
[root@ns1 ~]# cd /usr/src/mysql-5.6.36/

(3). 配置
在内容丰富 、结构庞大的企业网站平台中,可能会用到多种字符集的网页,相应的数据库系统也应该支持不同的字符集编码。
配置过程中,将默认使用的字符集设置为 utf8,并添加其他字符集的支持。

[root@ns1 mysql-5.6.36]# cmake  -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DSYSCONFDIR=/etc -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DWITH_EXTRA_CHARSETS=all
[root@ns1 mysql-5.6.36]# echo $?
0
  • 选项的含义如下:
  • -DCMAKE_INSTALL_PREFIX :指定将 mysql数据库程序安装到某目录下。
  • -DSYSCONFDIR :指定初始化参数文件目录。
  • -DDEFAULT_CHARSET :指定默认使用的字符集编码。
  • -DDEFAULT_COLLATION :指定默认使用的字符集校对规则。
  • -DWITH_EXTRA_CHARSETS :指定额外支持的其他字符集编码。

(4). 编译安装

[root@ns1 mysql-5.6.36]# make && make install
[root@ns1 mysql-5.6.36]# echo $?
0

安装后调整

(1). 对数据库目录进行权限设置

[root@ns1 ~]# chown -R mysql:mysql /usr/local/mysql

(2). 建立配置文件
在 MySQL 源码目录中的 support-files 文件夹下,提供了适合不同负载数据库的样本配置文件。
如果不确定数据库系统的应用规模,一般选择 my-medium.cnf 文件即可,该文件满足大多数企业的中等需求。

[root@ns1 mysql-5.6.36]# rm -rf /etc/my.cnf    //如果原来 etc文件夹下有my.cnf文件可以删除
[root@ns1 mysql-5.6.36]# cp support-files/my-default.cnf /etc/my.cnf

(3). 初始化数据库
为了能够正常使用 MySQL数据库系统,应以运行用户 mysql的身份执行初始化脚本 mysql_install_db ,指定数据存放目录等。

[root@ns1 mysql-5.6.36]# /usr/local/mysql/scripts/mysql_install_db --user=mysql  --basedir=/usr/local/mysql  --datadir=/usr/local/mysql/data/

(4). 设置环境变量
为了方便在任何目录下使用 mysql命令,需要在 /etc/profile 设置环境变量。

[root@ns1 mysql-5.6.36]# echo "PATH=$PATH:/usr/local/mysql/bin" >> /etc/profile
[root@ns1 mysql-5.6.36]# . /etc/profile               //立即生效

添加系统服务

找到 support-files 文件夹下的 mysql.server 脚本文件,将其复制到 /etc/rc.d/init.d 目录下,并改名为 mysqld,然后设置执行权限,通过执行 “chkconfig” 命令将其添加为 mysqld 系统服务。

[root@ns1 mysql-5.6.36]# cp support-files/mysql.server /etc/rc.d/init.d/mysqld
[root@ns1 mysql-5.6.36]# chmod +x /etc/rc.d/init.d/mysqld
[root@ns1 mysql-5.6.36]# chkconfig --add mysqld
  • 启动MySQL服务,并查看运行状态
[root@ns1 mysql-5.6.36]# systemctl start mysqld
[root@ns1 mysql-5.6.36]# /etc/init.d/mysqld status
 SUCCESS! MySQL running (28430)
[root@ns1 mysql-5.6.36]# systemctl status mysqld
● mysqld.service - LSB: start and stop MySQL
   Loaded: loaded (/etc/rc.d/init.d/mysqld; bad; vendor preset: disabled)
   Active: active (running) since 二 2020-07-21 21:38:39 CST; 37s ago
     Docs: man:systemd-sysv-generator(8)
  Process: 28317 ExecStart=/etc/rc.d/init.d/mysqld start (code=exited, status=0/SUCCESS)
    Tasks: 22
   CGroup: /system.slice/mysqld.service
           ├─28323 /bin/sh /usr/local/mysql/bin/mysqld_safe --datadir=/usr/local/mysql/data --pid-file=/usr/local/mysql/data...
           └─28430 /usr/local/mysql/bin/mysqld --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --plugin-dir=/usr/...

7月 21 21:38:38 ns1.kgc.com systemd[1]: Starting LSB: start and stop MySQL...
7月 21 21:38:38 ns1.kgc.com mysqld[28317]: Starting MySQL.Logging to '/usr/local/mysql/data/ns1.kgc.com.err'.
7月 21 21:38:39 ns1.kgc.com mysqld[28317]: SUCCESS!
7月 21 21:38:39 ns1.kgc.com systemd[1]: Started LSB: start and stop MySQL.
[root@ns1 mysql-5.6.36]# netstat -anpt | grep mysqld
tcp6       0      0 :::3306                 :::*                    LISTEN      28430/mysqld
  • MySQL 服务器默认通过 TCP 3306 端口提供服务。通过编辑 /etc/my.cnf 配置文件中 [mysqld] 配置段的 “port=3306 ”行,可以更改监听端口。

连接并登录到 MySQL操作环境

经过安装后的初始化进程,MySQL 数据库的默认管理员用户名为 “root”,密码为空。

  • 连接并登录到 MySQL操作环境
mysql -u 用户名 [-p]
提示符:mysql>

未设置密码的root用户登录本机的 MySQL数据库,

[root@ns1 ~]# mysql -u root           //“-u” 选项用于指定认证用户
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 1
Server version: 5.6.36 Source distribution

Copyright (c) 2000, 2017, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> 
  • 设置数据库用户的密码
mysqladmin  -u  root  [-p]  password 新密码
  • 退出MySQL 操作环境
mysql>exit

执行 MySQL 操作语句

在数据库操作环境下,用户可以输入各中操作语句对数据库进行管理。
每一条 MySQL 操作语句以分号“;”结束,输入时可以不区分大小写,但习惯上将 MySQL 语句中的关键字大写。

  • (1). 查看当前服务器中有那些库
    SHOW DATABASES 语句用于查看当前 Mysql服务器中包含的库。
mysql> SHOW DATABASES;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| test               |
+--------------------+
4 rows in set (0.00 sec)
  • (2). 查看当前使用库中有那些表
    SHOW TABLES 语句用于查看当前所在的库中包含的表。
    在操作之前,需要先使用 USE 语句切换到所使用的库。
mysql> USE mysql;
Database changed
mysql> SHOW TABLES;
+---------------------------+
| Tables_in_mysql           |
+---------------------------+
| columns_priv              |
| db                        |
| event                     |
| func                      |
| general_log               |
| help_category             |
| help_keyword              |
| help_relation             |
| help_topic                |
| innodb_index_stats        |
| innodb_table_stats        |
| ndb_binlog_index          |
| plugin                    |
| proc                      |
| procs_priv                |
| proxies_priv              |
| servers                   |
| slave_master_info         |
| slave_relay_log_info      |
| slave_worker_info         |
| slow_log                  |
| tables_priv               |
| time_zone                 |
| time_zone_leap_second     |
| time_zone_name            |
| time_zone_transition      |
| time_zone_transition_type |
| user                      |
+---------------------------+
28 rows in set (0.00 sec)
  • (3). 退出mysql命令工具
    执行 “EXIT” 或 “QUIT” 命令
mysql> EXIT
Bye
[root@ns1 ~]# 

MySQL 增删改查

#切换到mysq1数据库
USE mysql;
#查看系统表user里的Host字段
SELECT Host,User,Password FROM user;
#查看所有的数据库
SHOW DATABASES;
#创建y1905数据库
CREATE DATABASE y1905;
USE y1905;
#查看当 前数据库里的所有的表
SHOW TABLES;
#创建-张students数据 表
CREATE TABLE students(id INT ,name CHAR(48),age CHAR(48));
#插入数据 .
INSERT INTO students VALUES(‘1’, ‘张三’,‘18’);
INSERT INTO students VALUES('2", ‘李四,"19’);
#查询students表的所有列信 息
SELECT * FROM students;
#将y1905数据库下students表里name为李四的修改成王五
UPDATE y1905. students SET name='王五’WHERE name=‘李四’;
SELECT * FROM students;
#将y1905数 据库下students表里name为王五的数据给删除
DELETE FROM y1905 . students WHERE name=‘王五’ ;
SELECT * FROM students;

Logo

瓜分20万奖金 获得内推名额 丰厚实物奖励 易参与易上手

更多推荐