以下安装中涉及的几点需要提前说明的问题:
1. 所有下载的文件将保存在 /usr/local/src/ 目录下
2. mysql 将以mysql用户运行,而且将加入 service 开机自动运行
3. mysql 将被安装在 /usr/local/mysql/ 目录下
4. mysql 默认安装使用 utf8mb4 字符集
5. mysql 的数据和日志文件保存在 /var/mysql/ 对应目录下
6. mysql 的配置文件保存于/var/mysql/my.cnf
1: 下载安装编译MySQL源码需要的库
sudo apt-get install build-essential libncurses5-dev cmake
2: 下载并解压MySQL源码包
cd /usr/local/src/
sudo wget -O mysql-5.6.16.tar.gz https://www.mysql.com/get/Downloads/MySQL-5.6/mysql-5.6.16.tar.gz/from/https://cdn.mysql.com/
sudo tar -zxvf mysql-5.6.16.tar.gz
sudo /usr/sbin/groupadd mysql
sudo /usr/sbin/useradd -g mysql mysql
sudo gpasswd -a mysql 'sdcard-rw' //手机加入读写sdcard权限
sudo mkdir -p /var/mysql/
sudo mkdir -p /var/mysql/data/
sudo mkdir -p /var/mysql/log/
sudo chmod 777 /var/mysql/data
3: 使用cmake生成安装文件
cd mysql-5.6.16
sudo cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_UNIX_ADDR=/tmp/mysql.sock -DDEFAULT_CHARSET=utf8mb4 -DDEFAULT_COLLATION=utf8mb4_general_ci -DWITH_EXTRA_CHARSETS:STRING=utf8mb4,gbk -DWITH_MYISAM_STORAGE_ENGINE=1 -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_READLINE=1 -DENABLED_LOCAL_INFILE=1 -DMYSQL_DATADIR=/var/mysql/data
4: 安装MySQL
sudo make
sudo make install
sudo chmod +w /usr/local/mysql
sudo chown -R mysql:mysql /usr/local/mysql
sudo chown -R mysql:mysql /var/mysql/
sudo ln -s /usr/local/mysql/lib/libmysqlclient.so.18 /usr/lib/libmysqlclient.so.18
find -name my-default.cnf
sudo cp my-default.cnf /var/mysql/my.cnf (注意:my-large.cnf适用于1G内存左右的服务器,可以根据自己配置情况选用my-large.cnf 或 my-huge.cnf 等不同配置)
sudo cp mysql.server /etc/init.d/mysqld
四. 配置启动MySQL 5.6.10
1. 若有需要请先修改 mysql 的配置 my.cnf
vi /var/mysql/my.cnf
修改 user=root
我的配置
# For advice on how to change settings please see # http://dev.mysql.com/doc/refman/5.6/en/server-configuration-defaults.html [mysqld] user=root port=3306 log-error=/var/mysql/log/error.log # Remove leading # and set to the amount of RAM for the most important data # cache in MySQL. Start at 70% of total RAM for dedicated server, else 10%. # innodb_buffer_pool_size = 128M # Remove leading # to turn on a very important data integrity option: logging # changes to the binary log between backups. # log_bin # These are commonly set, remove the # and set as required. # basedir = ..... # datadir = ..... # port = ..... # server_id = ..... # socket = ..... # Remove leading # to set options mainly useful for reporting servers. # The server defaults are faster for transactions and fast SELECTs. # Adjust sizes as needed, experiment to find the optimal values. # join_buffer_size = 128M # sort_buffer_size = 2M # read_rnd_buffer_size = 2M sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES max_allowed_packet=200M character-set-server=utf8mb4
2. mysql 初始化安装
/usr/local/mysql/scripts/mysql_install_db \
--defaults-file=/var/mysql/my.cnf \
--basedir=/usr/local/mysql \
--datadir=/var/mysql/data \
--user=mysql
即系一行
sudo /usr/local/mysql/scripts/mysql_install_db --defaults-file=/var/mysql/my.cnf --basedir=/usr/local/mysql --datadir=/var/mysql/data --user=mysql
3. 将 mysql 加入开机启动
sudo chmod +x /etc/init.d/mysqld
vi /etc/init.d/mysqld (sudo vim /etc/init.d/mysqld 编辑此文件,查找并修改以下变量内容:)
basedir=/usr/local/mysql
datadir=/var/mysql/data
保存退出
sudo chkconfig --add mysqld
===========================================
Error:
sudo: chkconfig:找不到命令
Fixed:
sudo apt-get install chkconfig
===========================================
sudo chkconfig --level 345 mysqld on
===========================================
Error:
/sbin/insserv: 没有那个文件或目录
Fixed:
sudo ln -s /usr/lib/insserv/insserv /sbin/insserv
===========================================
/usr/local/mysql/bin/mysqladmin -u root password new password
eg==>sudo /usr/local/mysql/bin/mysqladmin -u root password root
===========================================
Error:
/usr/local/mysql/bin/mysqladmin: connect to server at 'localhost' failed
error: 'Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)'
Check that mysqld is running and that the socket: '/tmp/mysql.sock' exists!Fixed:
Fixed:(本次原因为 系统有mysql的僵尸进程,可以干掉进程或重启)
reboot
===========================================
sudo ln -s /usr/local/mysql/bin/mysql /usr/bin/mysql
ln -s /var/mysql/my.cnf /etc/my.cnf 使配置文件起作用
Test:
mysql -u root -p
4. 启动 mysql
sudo service mysqld restart
错误查看错误日志,如果有权限问题修改/var/mysql/data 访问权限