加入收藏 | 设为首页 | 会员中心 | 我要投稿 聊城站长网 (https://www.0635zz.com/)- 智能语音交互、行业智能、AI应用、云计算、5G!
当前位置: 首页 > 站长学院 > MySql教程 > 正文

Linux下MySQL组装及基本操作教程

发布时间:2023-10-12 15:23:52 所属栏目:MySql教程 来源:
导读:为了提供更丰富、更强大的 web 应用功能,往往还需要有后台数据库、网页编程等多种角色的支持。

在一般小中型企业中,最常用的数据库就是MySQL,MySQL 是一个真正多线程、多用户的 SQL 数据库服务,凭借其高性能
为了提供更丰富、更强大的 web 应用功能,往往还需要有后台数据库、网页编程等多种角色的支持。
 
在一般小中型企业中,最常用的数据库就是MySQL,MySQL 是一个真正多线程、多用户的 SQL 数据库服务,凭借其高性能、高可靠和易于使用的特性,成为云服务器领域中最受欢迎的开源数据库系统。
 
MySQL 源码编译包(mysql-5.6.tar.gz):
 
https://pan.baidu.com/s/1pgYHB8kyJ7U1zl2cm4XUcw
 
提取码: y8py
 
MySQL 5.X 系列版本的使用最为广泛,该版本稳定性、兼容性都不错
 
其官方站点为:http://www.mysql.com
 
准备工作:
 
为了避免发生端口冲突、程序冲突等现象,建议先查看 MySQL 的安装情况,确认没有使用以 RPM 安装的MySQL包
 
[root@mysql /]# rpm -qa | grep mysql
 
如果有的话,建议将其卸载:rpm -q mysql-server mysql
 
然后就是需要安装 ncurses 包,检测到已经安装三个,还缺一个,所以需要挂载系统光盘,进行安装
 
[root@mysql /]# rpm -qa | grep ncurses
 
ncurses-5.9-13.20130511.el7.x86_64
 
ncurses-libs-5.9-13.20130511.el7.x86_64
 
ncurses-base-5.9-13.20130511.el7.noarch
 
[root@mysql /] # mount /dev/sr0 /media/
 
[root@mysql Packages]# rpm -ivh ncurses-devel-5.9-13.20130511.el7.x86_64.rpm
 
warning: ncurses-devel-5.9-13.20130511.el7.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID f4a80eb5: NOKEY
 
Preparing...                          ################################# [100%]
 
Updating / installing...
 
   1:ncurses-devel-5.9-13.20130511.el7################################# [100%]
 
MySQL 5.X 系列版本需要 cmake 编译安装,所以需要先安装 cmake 包:
 
[root@mysql media]# tar zxf cmake-2.8.6.tar.gz -C /usr/src/
 
[root@mysql media]# cd /usr/src/cmake-2.8.6/
 
[root@mysql cmake-2.8.6]# ./configure
 
[root@mysql cmake-2.8.6]# gmake && gmake install           # 过程会很长
 
源码编译及安装:
 
创建运行用户:
 
[root@mysql /]# groupadd mysql
 
[root@mysql /]# useradd -M -s /sbin/nologin mysql -g mysql    # -M 不创建宿主目录   -s 指定shell环境   -g 指定加入组
 
解包:
 
将下载的 mysql 源码包解压:
 
[root@mysql media]# tar zxf mysql-5.6.36.tar.gz -C /usr/src/
 
[root@mysql media]# cd /usr/src/mysql-5.6.36/
 
配置:
 
在内容丰富、结构庞大的企业网站中,可能会用到多种字符集的网页,相应地数据库系统也应该支持不同的字符集编码。在配置过程中,可以将默认使用的字符集设置为 utf-8,并添加字符集的支持。
 
注意注意注意:接下来输入的命令需要区分大小写,一个标点符号也不能错,错了就得重新来过,写完命令之后一定要耐心检查一下
 
[root@mysql 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
 
各选项含义:
 
--DCMAKE_INSTALL_PREFIX:指定将 MySQL 数据库程序安装到某目录下
 
--DSYSCONFDIR:指定初始化参数文件目录
 
--DDEFAULT_CHARSET:指定默认使用的字符集编码
 
--DDEFAULT_COLLATION:指定默认使用的字符集校对规则,utf8_general_ci 是适用于 utf-8 字符集的通用规则
 
--DWITH_EXTRA_CHARSETS:指定额外支持的其他字符集编码
 
[root@mysql mysql-5.6.36]# make && make install            #编译并安装  过程会很漫长
 
安装后的其他调整:
 
对数据库的目录进行权限设置:
 
[root@mysql ~]# chown -R mysql:mysql /usr/local/mysql
 
建立配置文件:
 
在 Centos 7 系统下默认支持 MariaDB 数据库,因此系统默认的/etc/my.cnf 配置文件中是 MariaDB 的配置文件。而在源码包目录中的 support-files 文件夹中,提供了 MySQL 数据库默认的样本配置文件 my-default.cnf 文件,所以在启动之前需要将原有的 my.cnf 文件替换为 MySQL 提供的配置文件内容。
 
[root@mysql ~]# rm -rf /etc/my.cnf                       # 将原来 etc 文件夹下的 my.cnf 文件删除
 
[root@mysql ~]# cp /usr/src/mysql-5.6.36/support-files/my-default.cnf /etc/my.cnf
 
初始化数据库:
 
以运行用户 mysql 的身份执行初始化脚本 mysql_install_db,指定数据存放目录
 
[root@mysql ~]# /usr/local/mysql/scripts/mysql_install_db
 
--user=mysql
 
--basedir=/usr/local/mysql
 
--datadir=/usr/local/mysql/data
 
设置环境变量(为了方便在任何目录下使用 mysql 命令,需要在 /etc/profile 设置环境变量):
 
[root@mysql ~]# echo "PATH=$PATH:/usr/local/mysql/bin" >> /etc/profile
 
[root@mysql ~]# . /etc/profile                  // 立即生效
 
添加为系统服务:
 
[root@mysql ~]# cp /usr/src/mysql-5.6.36/support-files/mysql.server
 
/usr/local/mysql/bin/mysqld.sh       # 将服务脚本复制到 MySQL安装目录中
 
[root@mysql ~]# chmod +x /usr/local/mysql/bin/mysqld.sh     # 添加执行权限
 
[root@mysql /]# vim /usr/lib/systemd/system/mysqld.service
 
[Unit]
 
Description=MySQL Server
 
After=network.target
 
[Service]
 
User=mysql                                     # 指定程序运行的用户账号
 
Group=mysql                                  # 指定程序运行的组账号
 
Type=forking
 
PIDFile=/usr/local/mysql/data/mysql.com.pid          # 注意pid前要输主机名,输入之前先查看一下本机主机名
 
ExecStart=/usr/local/mysql/bin/mysqld.sh  start
 
ExecStop=/usr/local/mysql/bin/mysqld.sh  stop
 
[Install]
 
WantedBy=multi-user.target
 
[root@mysql /]# systemctl enable mysqld              # 设置开机自启
 
[root@mysql /]# systemctl status mysqld               # 检查服务启动状态
 
[root@mysql /]# systemctl start mysqld                  # 启动服务
 
若嫌编写配置文件麻烦,可以换另一种方法:
 
当对/usr/local/mysql/bin/mysqld.sh 赋予执行权限后,继续以下操作:
 
[root@mysql-5.6.36]# cp /usr/local/mysql/bin/mysqld.sh /etc/init.d/mysqld
 
[root@mysql-5.6.36]# vim /etc/init.d/mysqld
 
Linux下MySQL安装及基本操作教程
 
修改后,保存退出。继续执行如下命令:
 
[root@localhost mysql-5.6.36]# chkconfig --add mysqld            #添加为系统服务
 
启动服务后登陆数据库:
 
root 是MySQL的默认管理员
 
[root@mysql /]# mysql -u root              # 无密码的时候登陆
 
[root@mysql /]# mysqladmin -u root password 123456       # 第一次设置密码
 
[root@mysql /]# mysqladmin -u root -p password 654321      # 修改密码,先输入新密码
 
Enter password:                                        # 根据提示输入旧密码
 
[root@mysql /]# mysql -u root -p               # 使用密码登陆
 
Enter password:                                         # 根据提示输入密码
 
 [root@mysql /]# mysql -u root -p
 
 ……       // 省略部分内容
 
mysql> status                    # 查看当前数据库的基本信息
 
mysql> exit                        # 退出 MySQL操作环境  ouit 也行
 
Bye
 
查看 MySQL 中有哪些库:
 
mysql> show databases;
 
+--------------------+
 
| Database           |
 
+--------------------+
 
| information_schema |
 
| mysql              |
 
| performance_schema |
 
| test               |
 
+--------------------+
 
4 rows in set (0.03 sec)
 
查看数据库中有哪些表:
 
mysql> use mysql;
 
Database changed
 
mysql> show tables;
 
+---------------------------+
 
| Tables_in_mysql         |
 
+---------------------------+
 
| columns_priv              |
 
| db                               |
 
| time_zone_name        |
 
……      // 省略部分内容
 
| time_zone_transition   |
 
| time_zone_transition_type |
 
| user                      |
 
+---------------------------+
 
28 rows in set (0.00 sec)
 
查看表的结构:
 
mysql> describe user;
 
+----------+----------+------+-----+---------+-------+
 
| Field    | Type     | Null | Key | Default | Extra |
 
+----------+----------+------+-----+---------+-------+
 
| name     | char(16) | YES  |     | NULL    |       |
 
| xingbie  | char(10) | YES  |     | NULL    |       |
 
| nianling | int(11)  | YES  |     | NULL    |       |
 
+----------+----------+------+-----+---------+-------+
 
3 rows in set (0.01 sec)
 
创建新的数据库:
 
mysql> create database users;
 
创建新的表:
 
mysql> use users;
 
mysql> create table user (name char(16),xingbie char(10),nianling int);
 
删除一个数据表:
 
mysql> drop table user;
 
Query OK, 0 rows affected (0.01 sec)
 
删除一个数据库:
 
mysql> drop database users;
 
Query OK, 0 rows affected (0.00 sec)
 
管理表中的数据记录:
 
插入数据记录:
 
insert   into  表名(字段一,字段二,...)   values(字段一的值,字段二的值,....)
 
mysql> insert into user (name,xingbie,nianling) values('zhangsan','nan','25');
 
查询数据记录:
 
mysql> select * from user;
 
+----------+---------+----------+
 
| name     | xingbie | nianling |
 
+----------+---------+----------+
 
| zhangsan | nan     |       25 |
 
+----------+---------+----------+
 
1 row in set (0.00 sec)
 
修改数据记录:
 
update    表名   set    字段名=‘修改的字段值’ where  条件表达式
 
mysql> update user set nianling='20' where name='zhangsan';
 
删除数据记录:
 
delete    from   表名    where   条件表达式;
 
mysql> delete from user where name='zhangsan';
 
数据库用户授权:
 
授予权限
 
grant    权限列表    on    库名.表名    to  用户@来源地址   identified    by   ‘密码’;
 
mysql> grant select on users.user to zhangsan@localhost identified by  '123456';
 
使用 GRANT 语句需要注意以下几点:
 
Linux下MySQL安装及基本操作教程
 
Linux下MySQL安装及基本操作教程
 
查看权限:
 
show    grants    for  用户名@来源地址;
 
show    grants    for  'zhangsan'@'localhost';
 
撤销权限:
 
revoke    权限列表    on   数据库名.表名    from   用户名@来源地址
 
revoke    all    on   test.user    from   'zhangsan'@'localhost';
 

 

(编辑:聊城站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章