Linux——MySQL数据库系统

2023-12-15 18:29:47

一、 MySQL的编译安装

????????1、准备工作

? ? ? ? (1)为了避免发生端口冲突,程序冲突等现象,建议先查询MySQL软件的安装情况,确认没有使用以Rpm方式安装的mysql-server、mysql软件包,否则建议将其卸载

[root@localhost ~]# rpm -qa mysql-server mysql

? ? ? ? (2)将光盘挂载到mnt目录,并下载软件及其开发包

[root@localhost ~]# mount /dev/cdrom /mnt/

[root@localhost ~]# rpm -ivh /mnt/Packages/ncurses-devel-5.9-14.20130511.el7_4.x86_64.rpm 
##下载ftp软件,以便去往ftp拿取软件包
[root@localhost ~]# rpm -ivh /mnt/Packages/ftp-0.17-67.el7.x86_64.rpm 

? ? ? ? (3)去ftp下载cmake包和MySQL软件包

[root@localhost ~]# ftp 172.16.37.13
Connected to 172.16.37.13 (172.16.37.13).
220 Serv-U FTP Server v15.1 ready...
Name (172.16.37.13:root): 135   //输入ftp账号
331 User name okay, need password.
Password:        //输入ftp密码
ftp> cd 软件下载/y2/y2c
ftp> ls
##下载MySQL软件包
ftp> get mysql-5.6.36.tar.gz  
ftp> get cmake-2.8.6.tar.gz

? ? ? ? (4)MySQL5.0系列需要cmake编译安装,所以先安装cmake包,?并解压

[root@localhost mysql]# tar zxf cmake-2.8.6.tar.gz 
[root@localhost mysql]# cd cmake-2.8.6/
[root@localhost cmake-2.8.6]# ./configure 

????????2、源码编译及安装

? ? ? ? (1)创建运行用户

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

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

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

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

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

[root@localhost mysql-5.6.36]# cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DSYSCONFDIR=/etc -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATTON=utf8_general_ci -DWITH_EXTRA_CHARSETS=all

?--DCMAKE_INSTALL_PREFIX:指定将MySQL数据库程序安装到某目录下,如目录/usr /local/mysql。
-DSYSCONFDIR:指定初始化参数文件目录。
一DDEFAULT_CHARSET:指定默认使用的字符集编码,如utf—8。
一DDEFALLT_COLLATION:指定默认使用的字符集校对规则,utf8._general_ci是适用于utf一8字符集的通用规则。
--DWITH_EXTRA_CHARSETS:指定额外支持的其他字符集编码。

? ? ? ? (4)编译及安装

[root@localhost mysql-5.6.36]# make
[root@localhost mysql-5.6.36]# make install

? ? ? ? 3、安装后的其他调整

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

[root@localhost mysql-5.6.36]# chown -R mysql:mysql /usr/local/mysql
[root@localhost mysql-5.6.36]# ls -ld /usr/local/mysql/
drwxr-xr-x. 13 mysql mysql 191 12月 12 23:58 /usr/local/mysql/

? ? ? ? (2)CentOS 7系统下默认支持MariaDB数据库,因此系统默认的/etc/my . cnf 配置文件中是MariaDB的配置文件。而在MySQL源码目录中的support-files 文件夹下,提供了MySQL数据库默认的样本配置文件 my-default . cnf 文件.在启动MySQL数据库服务之前,需要先将原有的 my .cnf 文件替换为MySQI提供的配置文件内容。

[root@localhost mysql-5.6.36]# rm -rf /etc/my.cnf
[root@localhost mysql-5.6.36]# cp support-files/my-default.cnf /etc/my.cnf


[root@localhost mysql-5.6.36]# vim /etc/my.cnf
//插入以下内容
[client]
default-character-set=utf8

[mysqld]
character_set_server=utf8

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

[root@localhost 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@localhost mysql-5.6.36]# echo "PATH=$PATH:/usr/local/mysql/bin" >>/etc/profile
[root@localhost mysql-5.6.36]# . /etc/profile
[root@localhost mysql-5.6.36]# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/usr/local/mysql/bin

4、添加系统服务

????????若希望添加mysqld系统服务.以便通过systemctl进行管理,可以直接使用源码包中提供的服务脚本。找到 support-files文件夹下的mysql ,server脚本文件,将其复制到/usr /local/mysql/bin/目录下,并改名为mysqld .sh,然后创建mysql系统服务的配置文件/usr /litb/systernd/system/mysqld .?service,将其添加为mysqld系统服务。

[root@localhost mysql-5.6.36]# cp support-files/mysql.server /usr/local/mysql/bin/mysqld.sh
[root@localhost mysql-5.6.36]# chmod +x /usr/local/mysql/bin/mysqld.sh
[root@lucky mysql-5.6.36]# 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/lucky.pid
ExecStart=/usr/local/mysql/bin/mysqld.sh start
ExecStop=/usr/local/mysql/bin/mysqld.sh stop

[Install]
WantedBy=multi-user.target

查看mysqld服务,并查看其运行状态,和端口号信息,通过编辑/etc/my.cnf配置文件中[mysqld]配置段的‘port=3306’行,可以更改监听端口?

[root@lucky mysql-5.6.36]# systemctl start mysqld.service? ? ? ? ? //启动服务
[root@lucky mysql-5.6.36]# systemctl enable mysqld.service? ? ? //设置开机自启

[root@lucky mysql-5.6.36]# systemctl status mysqld.service? ? ? ?//查看服务运行状态

?

文章来源:https://blog.csdn.net/zj2059129607/article/details/134947905
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。