mysql在linux下安装与配置

一、MySQL 安装

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

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

sql 复制代码
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

sql 复制代码
$ wget http://www.cmake.org/files/v3.1/cmake-3.1.1.tar.gz

2.2、解压安装包

sql 复制代码
$ tar zxvf cmake-3.1.1.tar.gz

2.3、进入安装包目录

sql 复制代码
$ cd cmake-3.1.1

2.4、编译安装

sql 复制代码
$ ./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

sql 复制代码
$ wget http://dev.mysql.com/get/Downloads/MySQL-5.6/mysql-5.6.15.tar.gz

3.2、解压安装包

sql 复制代码
$ tar zxvf mysql-5.6.15.tar.gz

3.3、进入安装包目录

sql 复制代码
$ cd mysql-5.6.15

3.4、编译安装

sql 复制代码
$ 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版本:

sql 复制代码
$ /usr/local/webserver/mysql/bin/mysql --version

到此,mysql安装完成。

二、MySQL 配置

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

sql 复制代码
$ /usr/sbin/groupadd mysql $ /usr/sbin/useradd -g mysql mysql

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

sql 复制代码
$ 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替换为下面内容

sql 复制代码
$ 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、初始化数据库

sql 复制代码
$/usr/local/webserver/mysql/scripts/mysql_install_db --defaults-file=/etc/my.cnf  --user=mysql

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

显示如下信息:

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、创建开机启动脚本

sql 复制代码
$ 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服务器

sql 复制代码
$ service mysqld start

7、连接 MySQL

sql 复制代码
$ /usr/local/webserver/mysql/bin/mysql -u root -p

修改MySQL用户密码

sql 复制代码
 mysqladmin -u用户名 -p旧密码 password 新密码

或进入mysql命令行

sql 复制代码
SET PASSWORD FOR '用户名'@'主机' = PASSWORD('密码');

创建新用户并授权:

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

其他命令

sql 复制代码
启动:service mysqld start
停止:service mysqld stop
重启:service mysqld restart
重载配置:service mysqld reload

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

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

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

9、 测试安装

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

sql 复制代码
mysql -u root -p

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

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

sql 复制代码
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 directory

2024-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、创建文件

sql 复制代码
cd /var/run

mkdir mysqld

cd mysqld

touch mysqld.pid

sync

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

sql 复制代码
chown -R mysql /var/run/mysqld

chgrp -R mysql /var/run/mysqld

chmod 777 /var/run/mysqld

再次重启,成功。

相关推荐
LiRuiJie15 分钟前
深入剖析MySQL锁机制,多事务并发场景锁竞争
数据库·mysql
jiunian_cn21 分钟前
【Linux】centos软件安装
linux·运维·centos
2501_9153743525 分钟前
Faiss向量数据库全面解析:从原理到实战
数据库·faiss
睡觉待开机31 分钟前
0. MySQL在Centos 7环境安装
数据库·mysql·centos
2501_9153743531 分钟前
Faiss vs Milvus 深度对比:向量数据库技术选型指南
数据库·milvus·faiss
程序员JerrySUN33 分钟前
[特殊字符] 深入理解 Linux 内核进程管理:架构、核心函数与调度机制
java·linux·架构
孤寂大仙v35 分钟前
【计算机网络】非阻塞IO——select实现多路转接
linux·计算机网络
派阿喵搞电子1 小时前
Ubuntu下有关UDP网络通信的指令
linux·服务器·网络
一叶知秋哈1 小时前
Java应用Flink CDC监听MySQL数据变动内容输出到控制台
java·mysql·flink
Evan_ZGYF丶1 小时前
【PCIe总线】 -- PCI、PCIe相关实现
linux·嵌入式·pcie·pci