开发者社区> 技术小阿哥> 正文

linux下MySQL5.6编译安装及修改字符集

简介:
+关注继续查看

环境准备:

mysql5.5以后./configure编译方式就改为cmake工具来编译。

安装依赖包: yum install -y cmake gcc gcc-c++ make cmake ncurses ncurses-devel

创建mysql用户和组:

groupadd mysql

useradd -g mysql -s /sbin/nologin mysql

1.安装mysql

下载:http://dev.mysql.com/downloads/mysql

1
2
3
4
5
6
tar zxvf mysql-5.6.14.tar.gz
cd mysql-5.6.14
cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql5.6 \
-DSYSCONFDIR=/usr/local/mysql/etc \
-DMYSQL_DATADIR=/usr/local/mysql5.6/data
make && make install

如果依赖包没有安装,编译配置会报错缺少什么库,安装相关包即可,再删除CMakeCache.txt!

2.初始化数据库和配置

1
2
3
4
5
6
7
8
9
10
11
12
/usr/local/mysql5.6/scripts/mysql_install_db \
--basedir=/usr/local/mysql5.6 --datadir= /usr/local/mysql5.6/data \
--user=mysql& #初始化数据库
mkdir -p /usr/local/mysql5.6/etc
cp support-files/my-medium.cnf /usr/local/mysql/etc/my.cnf
cp support-files/mysql.server /etc/init.d/mysqld
chmod +x /etc/init.d/mysqld
chown -R root.mysql /usr/local/mysql/         #赋予mysql属组权限
chown -R mysql.mysql /usr/local/mysql/data    #赋予数据存放目录权限
/usr/local/mysql5.6/bin/mysqld_safe –user=mysql&       #安全启动mysql
echo‘PATH=$PATH:/usr/local/mysql/bin' >> /etc/profile  #设置变量,方便使用mysql命令
source /etc/profile

3.设置mysql默认创建数据库编码

1
2
3
4
5
6
7
vi /usr/local/mysql/etc/my.cnf
在[mysqld]下添加
default-character-set=utf8
或者 default-character-set=gbk  #防止网站出现乱码
在[client]下添加
default-character-set=utf8
或者 default-character-set=gbk

4.测试是否安装成功

service mysqld start

如果启动报错:

Starting MySQL. ERROR! The server quit without updating PID file (/var/lib/mysql/202.pid)

解决:rm -rf /etc/my.cnf #删除自带的配置文件

1
2
3
4
5
6
7
8
9
10
11
mysqladmin -uroot password '123.com'  #设置初次登陆mysql密码
mysql -u root -p123456
mysql> show databases;
+——————–+
| Database |
+——————–+
| information_schema |
| mysql |
| test |
+——————–+
6rows inset(0.00sec)

5.常用编译参数

1
2
3
4
5
6
7
8
9
10
11
12
13
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql  #安装路径
-DMYSQL_DATADIR=/usr/local/mysql/data    #数据文件存放位置
-DSYSCONFDIR=/usr/local/mysql/etc        #my.cnf路径
-DWITH_MYISAM_STORAGE_ENGINE=1           #支持MyIASM引擎
-DWITH_INNOBASE_STORAGE_ENGINE=1         #支持InnoDB引擎
-DWITH_MEMORY_STORAGE_ENGINE=1           #支持MEMORY引擎
-DMYSQL_UNIX_ADDR=/tmp/mysqld.sock       #连接数据库socket路径
-DMYSQL_TCP_PORT=3306                    #默认端口
-DWITH_EXTRA_CHARSETS:STRING=utf8,gbk    #安装需要的字符集
-DDEFAULT_CHARSET=utf8                   #默认字符集
-DDEFAULT_COLLATION=utf8_general_ci      #设置默认效验字符集排序规则,要和DDEFAULT_CHARSET一起用
-DMYSQL_USER=mysql                       #运行用户
-DWITH_COMMENT=’string’                #注释存储类型

6、MySQL字符集介绍及修改(编码)

常用字符集:atin英文,big5繁体中文,GB2312中文,UTF8通用语言

Mysql对于字符集的支持细化到四个层次:

服务器(server);

数据库(database);

数据表(table)(字段column);

连接(connection);

方法1:主配置文件修改my.cnf

[mysqld]

character_set_server=utf8

[mysql]

default-character-set=utf8


重启mysql!

方法2:Mysql命令修改(网站乱码如下解决)

1.查看数据库使用的字符集:

1
2
3
mysql> show variables like 'character\_set\_%';
mysql> show variables like 'char%';
mysql> show create table tablename;  #查看创建表时字符集

2.修改默认字符集

 2.1修改服务器默认字符集

 set character_set_server=utf8

 2.2修改数据库字符集

 set character_set_database=utf8;

 2.3修改数据库客户端字符集

 set character_set_client=utf8;

 2.4修改连接默认字符集

 set character_set_connection=utf8

3.修改已经存在库的字符集

 3.1修改存在数据库的字符集

 alter database mydb character set utf-8;

 3.2修改存在表的字符集

 alter table mytable default character set utf8

 3.3修改存在表字段字符集

 alter table mytable change old_column new_column varchar(255) character set utf8; 



本文转自 李振良OK 51CTO博客,原文链接:http://blog.51cto.com/lizhenliang/1290440,如需转载请自行联系原作者

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
2、Linux 坏境MySQL数据目录和字符集修改
Linux 坏境MySQL数据目录和字符集修改
21 0
linux ubuntu 中文字符集设置图文详解(傻瓜式教程)
linux ubuntu 中文字符集设置图文详解(傻瓜式教程)
307 0
Linux学习日常-中文字符集设置
Linux学习日常-中文字符集设置
78 0
关于LINUX FILE命令是如何判断文件字符集的
今天在使用file -i 查看MYSQLDUMP文件的时候其输出为 charset=us-ascii with very long lines 我导出的文件应该是utf8的,为什么会显示ASCII呢,我们知道ASCII并没有中文编码,那么真的有问题吗? 然后用如...
933 0
linux[ubuntu]下mysql字符集设置
1.安装mysql $ sudo apt-get install mysql-server 2.字符集设置 $ sudo vim /etc/mysql/my.cnf 追加如下内容 [client] default-character-set=utf8 #增加这一行,指定 socket=/var/run/mysqld/mysqld.sock [mysqld]
1039 0
+关注
技术小阿哥
文章
问答
视频
文章排行榜
最热
最新
相关电子书
更多
ECS运维指南 之 Linux系统诊断
立即下载
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载
相关实验场景
更多
相关镜像