ubuntu mysql安装

本文详细介绍了如何通过自动安装和编译安装两种方式安装MySQL,并提供了完整的配置步骤,包括安装依赖库、编译和安装MySQL、配置数据库、加速MySQL性能、安全设置等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

两种安装方式

  1. 自动安装
# sudo apt-get install mysql-server 
# sudo apt-get install mysql-client
# sudo apt-get install libmysqlclient-dev
  1. 编译安装 (http://www.mysql.com)
    安装ncurses (http://ftp.gnu.org/pub/gnu/ncurses)
    ncurses是字符终端下屏幕控制的基本库。可能很多新开发的程序都不使用了,不过如果要编译一些老程序,还经常遇得到。
# ./configure --prefix=/usr --with-shared --without-debug
# make
# sudo make install 

# tar zxvf mysql-5.1.63.tar.gz
# ./configure --prefix=/usr/local/mysql --localstatedir=/data/mysql/data --with-plugins=innobase --without-debug --enable-assembler --enable-thread-safe-client --enable-profiling --with-mysqld-ldflags=-all-static --with-client-ldflags=-all-static --with-charset=utf8 --with-collation=utf8_general_ci --with-extra-charsets=utf8,gbk --with-pthread --with-plugins=ndbcluster --with-mysqld-user=mysql --without-embedded-server --with-big-tables  --with-unix-socket-path=/usr/local/mysql/sock/mysql.sock
# make
# sudo make install

配置数据库

  • 生成mysql用户数据库和表文件
# ln -s /usr/local/mysql/bin/mysql_install_db /sbin/mysql_install_db
# mysql_install_db
  • 生成my.conf
# groupadd mysql
# useradd -g mysql mysql
# cp support-files/my-large.cnf   /etc/my.cnf
# cp /etc/my.cnf /etc/my.cnf.bak
  • 修改权限
# cd /usr/local
# chmod 750 mysql -R
# chgrp mysql mysql        //变更文件与目录的所属群组
  • 加速mysql
# cd /usr/local/mysql/libexec
# cp mysqld mysqld.old
# strip mysqld        //用strip剥离的mysqld二进制,生成的二进制速度会快4% 
  • 配置mysql
# vi /etc/my.cnf
在[client]下添加
character-set-server = utf8 (老版本用default-character-set)
在[mysqld]下添加
character-set-server = utf8
在log-bin下加上保留时间
expire_logs_days = 7 
  • 启动mysql
# ln -s /usr/local/mysql/bin/mysqld_safe /sbin/mysqld_safe    //安全启动
# mysqld_safe &
# mysqld_safe --user=mysql &
# ln -s /usr/local/mysql/bin/my_print_defaults /sbin/my_print_defaults
# ln -s /usr/local/mysql/bin/mysqld_multi /sbin/mysqld_multi
# mysqld_multi --user=mysql &

如果报错:
Starting MySQL. ERROR! Manager of pid-file quit without updating file.
就是/data/mysql权限问题

修改方法: 
# chown mysql:mysql mysql/ -R
  • 制作启动文件
# cp support-files/mysql.server /etc/init.d/mysqld
# chmod 700 /etc/init.d/mysqld
# chkconfig --add mysqld         //检查,设置系统的各种服务
# chkconfig --level 345 mysqld on 
  • 为了mysql安全
更改 MYsql的bind-address监听地址,让MySQL只守候在127.0.0.1上,这样从Internet上就无法直接访问数据库了
# vi /etc/init.d/mysqld
将:$bindir/mysqld_safe --datadir=$datadir --pid-file=$pid_file &
修改为:$bindir/mysqld_safe --datadir=$datadir --pid-file=$pid_file --bind-address=127.0.0.1 &
  • 收尾工作
# ln -s /usr/local/mysql/bin/mysql /sbin/mysql        //登录
# ln -s /usr/local/mysql/bin/mysqladmin /sbin/mysqladmin    //设置密码
# ln -s /usr/local/mysql/bin/mysqldump /sbin/mysqldump        //数据导出
# ln -s /usr/local/mysql/bin/mysql_secure_installation /sbin/mysql_secure_installation    //一些附加配置
  • 注意

my.cnf中,如果在[mysqld]的段中加上一句:skip-grant-tables
那么mysql无需密码即可登录

如果在查询数据库的时候,频繁操作一个比较大的表的时候,出现如下错误:
Mysql mysql lost connection to server during query
修改办法:在mysql配置文件[myslqd]下面添加一行设置skip-name-resolve(需要重启mysql服务)

如果多次连接数据库,但其实使用的都是同一个连接,出现如下错误:
MySQL server has gone away
修改办法:在my.cnf文件中添加或者修改 wait_timeout=2880000

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值