当前位置: 首页 > news >正文

mysql在linux下安装与配置

一、MySQL 安装

本教程的系统平台:CentOS release 6.6 (Final) 64位。

        1、安装编译工具及库文件

yum -y install gcc gcc-c++ make autoconf libtool-ltdl-devel gd-devel freetype-devel libxml2-devel libjpeg-devel libpng-devel openssl-devel curl-devel bison patch unzip libmcrypt-devel libmhash-devel ncurses-devel sudo bzip2 flex libaio-devel

        2、 安装cmake 编译器

                cmake 版本:cmake-3.1.1。

                2.1、下载地址:http://www.cmake.org/files/v3.1/cmake-3.1.1.tar.gz

$ wget http://www.cmake.org/files/v3.1/cmake-3.1.1.tar.gz

                2.2、解压安装包      

$ tar zxvf cmake-3.1.1.tar.gz

                2.3、进入安装包目录

$ cd cmake-3.1.1

                2.4、编译安装 

$ ./bootstrap $ make && make install

        3、安装 MySQL

                MySQL版本:mysql-5.6.15。

                3.1、下载地址: http://dev.mysql.com/get/Downloads/MySQL-5.6/mysql-5.6.15.tar.gz

$ wget http://dev.mysql.com/get/Downloads/MySQL-5.6/mysql-5.6.15.tar.gz

                3.2、解压安装包

$ tar zxvf mysql-5.6.15.tar.gz

                3.3、进入安装包目录

$ cd mysql-5.6.15

                3.4、编译安装 

$ cmake -DCMAKE_INSTALL_PREFIX=/usr/local/webserver/mysql/ -DMYSQL_UNIX_ADDR=/tmp/mysql.sock -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DWITH_EXTRA_CHARSETS=all -DWITH_MYISAM_STORAGE_ENGINE=1 -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_MEMORY_STORAGE_ENGINE=1 -DWITH_READLINE=1 -DWITH_INNODB_MEMCACHED=1 -DWITH_DEBUG=OFF -DWITH_ZLIB=bundled -DENABLED_LOCAL_INFILE=1 -DENABLED_PROFILING=ON -DMYSQL_MAINTAINER_MODE=OFF -DMYSQL_DATADIR=/usr/local/webserver/mysql/data -DMYSQL_TCP_PORT=3306 $ make && make install

                3.5、查看mysql版本:

$ /usr/local/webserver/mysql/bin/mysql --version

                到此,mysql安装完成。

二、MySQL 配置

        1、创建mysql运行使用的用户mysql

$ /usr/sbin/groupadd mysql $ /usr/sbin/useradd -g mysql mysql

        2、创建binlog和库的存储路径并赋予mysql用户权限

$ mkdir -p /usr/local/webserver/mysql/binlog /www/data_mysql 
$ chown mysql.mysql /usr/local/webserver/mysql/binlog/ /www/data_mysql/

        3、创建my.cnf配置文件

                将/etc/my.cnf替换为下面内容

$ cat /etc/my.cnf 
[client] 
port = 3306 
socket = /tmp/mysql.sock 
[mysqld] 
replicate-ignore-db = mysql 
replicate-ignore-db = test 
replicate-ignore-db = information_schema 
user = mysql 
port = 3306 
socket = /tmp/mysql.sock 
basedir = /usr/local/webserver/mysql 
datadir = /www/data_mysql 
log-error = /usr/local/webserver/mysql/mysql_error.log 
pid-file = /usr/local/webserver/mysql/mysql.pid 
open_files_limit = 65535 
back_log = 600 
max_connections = 5000
max_connect_errors = 1000 
table_open_cache = 1024 
external-locking = FALSE 
max_allowed_packet = 32M 
sort_buffer_size = 1M 
join_buffer_size = 1M 
thread_cache_size = 600 
#thread_concurrency = 8 
query_cache_size = 128M 
query_cache_limit = 2M 
query_cache_min_res_unit = 2k 
default-storage-engine = MyISAM 
default-tmp-storage-engine=MYISAM 
thread_stack = 192K 
transaction_isolation = READ-COMMITTED 
tmp_table_size = 128M 
max_heap_table_size = 128M 
log-slave-updates 
log-bin = /usr/local/webserver/mysql/binlog/binlog 
binlog-do-db=oa_fb 
binlog-ignore-db=mysql 
binlog_cache_size = 4M 
binlog_format = MIXED 
max_binlog_cache_size = 8M 
max_binlog_size = 1G 
relay-log-index = /usr/local/webserver/mysql/relaylog/relaylog 
relay-log-info-file = /usr/local/webserver/mysql/relaylog/relaylog 
relay-log = /usr/local/webserver/mysql/relaylog/relaylog 
expire_logs_days = 10 
key_buffer_size = 256M 
read_buffer_size = 1M 
read_rnd_buffer_size = 16M 
bulk_insert_buffer_size = 64M 
myisam_sort_buffer_size = 128M 
myisam_max_sort_file_size = 10G 
myisam_repair_threads = 1 
myisam_recover 
interactive_timeout = 120 
wait_timeout = 120 
skip-name-resolve 
#master-connect-retry = 10 
slave-skip-errors = 1032,1062,126,1114,1146,1048,1396 
#master-host = 192.168.1.2 
#master-user = username 
#master-password = password 
#master-port = 3306 
server-id = 1 
loose-innodb-trx=0  
loose-innodb-locks=0  
loose-innodb-lock-waits=0  
loose-innodb-cmp=0  
loose-innodb-cmp-per-index=0 
loose-innodb-cmp-per-index-reset=0 
loose-innodb-cmp-reset=0  
loose-innodb-cmpmem=0  
loose-innodb-cmpmem-reset=0  
loose-innodb-buffer-page=0  
loose-innodb-buffer-page-lru=0  
loose-innodb-buffer-pool-stats=0  
loose-innodb-metrics=0  
loose-innodb-ft-default-stopword=0  
loose-innodb-ft-inserted=0  
loose-innodb-ft-deleted=0  
loose-innodb-ft-being-deleted=0  
loose-innodb-ft-config=0  
loose-innodb-ft-index-cache=0  
loose-innodb-ft-index-table=0  
loose-innodb-sys-tables=0  
loose-innodb-sys-tablestats=0  
loose-innodb-sys-indexes=0  
loose-innodb-sys-columns=0  
loose-innodb-sys-fields=0  
loose-innodb-sys-foreign=0  
loose-innodb-sys-foreign-cols=0 slow_query_log_file=/usr/local/webserver/mysql/mysql_slow.log 
long_query_time = 1
[mysqldump] 
quick max_allowed_packet = 32M

        4、初始化数据库

$/usr/local/webserver/mysql/scripts/mysql_install_db --defaults-file=/etc/my.cnf  --user=mysql

        注意:初始化时可能会报FATAL ERROR: Could not find /fill_help_tables.sql错误,需要进到安装目录执行。

        显示如下信息:

Installing MySQL system tables...
2024-06-12 13:18:51 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details). OK Filling help tables...
2024-06-12 13:18:57 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details). OK ...

        5、创建开机启动脚本

$ cd /usr/local/webserver/mysql/ $ cp support-files/mysql.server /etc/rc.d/init.d/mysqld  
$ chkconfig --add mysqld  $ chkconfig --level 35 mysqld on

        6、启动mysql服务器

$ service mysqld start

        7、连接 MySQL

$ /usr/local/webserver/mysql/bin/mysql -u root -p

                修改MySQL用户密码

 mysqladmin -u用户名 -p旧密码 password 新密码

                或进入mysql命令行

SET PASSWORD FOR '用户名'@'主机' = PASSWORD(‘密码');

                创建新用户并授权:

 grant all privileges on *.* to 用户名@'%' identified by '密码' with grant option;

                其他命令

启动:service mysqld start
停止:service mysqld stop
重启:service mysqld restart
重载配置:service mysqld reload

        8、添加MySQL服务到系统服务       

                为了方便管理MySQL服务,可以将其添加为系统服务。

                具体方法取决于您的Linux发行版,例如在Systemd系统中,可以创建一个.service文件。

        9、 测试安装

                通过以下命令测试MySQL是否安装成功:

mysql -u root -p

                输入密码后,如果能成功进入MySQL命令行界面,说明安装配置完成。

三、​mysql启动失败:不能创建pid文件​

2024-06-12T07:51:38.905444Z 0 [ERROR] /usr/sbin/mysqld: Can't create/write to file '/var/run/mysqld/mysqld.pid' (Errcode: 2 - No such file or directory)2024-06-12T07:51:38.905481Z 0 [ERROR] Can't start server: can't create PID file: No such file or directory2024-06-12T07:51:38.931861Z mysqld_safe mysqld from pid file /var/run/mysqld/mysqld.pid ended

        /var/run/mysqld/mysqld.pid这个文件路径是在“/etc/init.d/mysqld”中配置的

        解决:

                1、创建文件                

cd /var/runmkdir mysqldcd mysqldtouch mysqld.pidsync

                2、修改 /var/run/mysqld/权限为mysql 

chown -R mysql /var/run/mysqldchgrp -R mysql /var/run/mysqldchmod 777 /var/run/mysqld

                再次重启,成功。

相关文章:

  • AI 定位!GeoSpyAI上传一张图片分析具体位置 不可思议! ! !
  • 做外贸开发客户使用外贸软件有必要吗?
  • Ionic 创建 APP
  • 【Ubuntu20.04】安装XRDP远程桌面服务
  • scrapy爬取豆瓣书单存入MongoDB数据库
  • 算法:位运算题目练习
  • 图像分隔和深度成像技术为什么受市场欢迎-数字孪生技术和物联网智能汽车技术的大爆发?分析一下图像技术的前生后世
  • C#(C Sharp)学习笔记_封装【十八】
  • ORDER BY FIELD
  • JS:获取鼠标点击位置
  • Kotlin 语言基础学习
  • 一血c++
  • Cheat Engine 学习
  • GTK tutorial 十三
  • Java 网站开发入门指南:如何用java写一个网站
  • 《网管员必读——网络组建》(第2版)电子课件下载
  • 【跃迁之路】【444天】程序员高效学习方法论探索系列(实验阶段201-2018.04.25)...
  • CentOS 7 防火墙操作
  • If…else
  • java架构面试锦集:开源框架+并发+数据结构+大企必备面试题
  • js操作时间(持续更新)
  • Redis 懒删除(lazy free)简史
  • vue-loader 源码解析系列之 selector
  • vue--为什么data属性必须是一个函数
  • WePY 在小程序性能调优上做出的探究
  • 基于Android乐音识别(2)
  • 每天一个设计模式之命令模式
  • 实习面试笔记
  • 使用Gradle第一次构建Java程序
  • 为什么要用IPython/Jupyter?
  • ​LeetCode解法汇总2583. 二叉树中的第 K 大层和
  • # Redis 入门到精通(七)-- redis 删除策略
  • ### Cause: com.mysql.jdbc.exceptions.jdbc4.MySQLTr
  • #define
  • #我与Java虚拟机的故事#连载04:一本让自己没面子的书
  • (1)(1.11) SiK Radio v2(一)
  • (11)iptables-仅开放指定ip访问指定端口
  • (7)svelte 教程: Props(属性)
  • (Java数据结构)ArrayList
  • (Oracle)SQL优化技巧(一):分页查询
  • (PWM呼吸灯)合泰开发板HT66F2390-----点灯大师
  • (windows2012共享文件夹和防火墙设置
  • (保姆级教程)Mysql中索引、触发器、存储过程、存储函数的概念、作用,以及如何使用索引、存储过程,代码操作演示
  • (第三期)书生大模型实战营——InternVL(冷笑话大师)部署微调实践
  • (二)斐波那契Fabonacci函数
  • (附源码)计算机毕业设计ssm-Java网名推荐系统
  • (五)网络优化与超参数选择--九五小庞
  • (已更新)关于Visual Studio 2019安装时VS installer无法下载文件,进度条为0,显示网络有问题的解决办法
  • (原创)boost.property_tree解析xml的帮助类以及中文解析问题的解决
  • (转)Android学习系列(31)--App自动化之使用Ant编译项目多渠道打包
  • (转载)从 Java 代码到 Java 堆
  • (总结)Linux下的暴力密码在线破解工具Hydra详解
  • .net 7 上传文件踩坑
  • .Net Redis的秒杀Dome和异步执行
  • .NET 给NuGet包添加Readme