মাইএসকিউএলে কীভাবে বিশ্বব্যাপী চরসেটটি কনফিগার করতে হয়


12

আমি আমার মাইএসকিউএল এর জন্য মাই সিএনএফ এর মাধ্যমে চরসেটটি পরিবর্তন করার চেষ্টা করেছি এবং এটি ব্যর্থ হয়েছে। আমি নীচে তালিকাভুক্ত চরসেট সেটিংস যুক্ত করেছি:

# The MySQL server
[mysqld]
port            = 3306
socket          = /var/lib/mysql/mysql.sock
skip-locking
key_buffer = 16M
max_allowed_packet = 1M
table_cache = 64
sort_buffer_size = 512K
net_buffer_length = 8K
read_buffer_size = 256K
read_rnd_buffer_size = 512K
myisam_sort_buffer_size = 8M

# ------------- MYSQL CHARSETS --------------
character_set_system = utf8
character_set_server = utf8
character_set_results = utf8
character_set_database = utf8
character_set_connection = utf8
character_set_client = utf8

collation_connection = utf8_general_ci
collation_database = utf8_general_ci
collation_server = utf8_general_ci

আমি যখন এগুলি সক্ষম করেছিলাম তখন মাইএসকিউএল শুরু করতে ব্যর্থ হয়েছিল। সর্বদা সর্বদা কীভাবে আমি নিশ্চিত করতে পারি যে সমস্ত কিছু ডিফল্ট হয়?

হালনাগাদ

ইউটিএফ 8 হওয়ার বিষয়ে এখনও কয়েকটি স্থানে সমস্যা রয়েছে

character_set_client    utf8
character_set_connection    utf8
character_set_database  latin1
character_set_filesystem    binary
character_set_results   utf8
character_set_server    latin1
character_set_system    utf8
character_sets_dir  /usr/share/mysql/charsets/
collation_connection    utf8_general_ci
collation_database  latin1_swedish_ci
collation_server    latin1_swedish_ci

দুর্ভাগ্যক্রমে আমি এখনও একটি বিচ্ছিন্নতা নিয়ে আসিনি ... কোন ধারণা?

বর্তমানে আমি এই কনফিগারেশনটি সফলভাবে ব্যবহার করছি:

[mysqld]
default-character-set = utf8
init-connect='SET NAMES utf8'
character-set-server = utf8


[mysql]
default-character-set = utf8

তবে পিএইচপিএমআইএডমিন এখনও কিছু ল্যাটিন 1 দেখাচ্ছে

character_set_client    utf8
character_set_connection    utf8
character_set_database  latin1
character_set_filesystem    binary
character_set_results   utf8
character_set_server    latin1
character_set_system    utf8
character_sets_dir  /usr/share/mysql/charsets/
collation_connection    utf8_general_ci
collation_database  latin1_swedish_ci
collation_server    latin1_swedish_ci

উত্তর:


23

আপনার নিম্নলিখিতটি আপনার মাই সিএনএফ ফাইলের সাথে অন্তর্ভুক্ত করতে হবে

[client]
default-character-set=utf8

[mysql]
default-character-set=utf8


[mysqld]
default-character-set = utf8    
collation-server = utf8_general_ci
init-connect='SET NAMES utf8'
character-set-server = utf8

আপনি নিম্নলিখিত ম্যানুয়াল পৃষ্ঠাগুলিতে আরও তথ্য সন্ধান করতে পারেন

মার্কের উত্তরের প্রতিক্রিয়া হিসাবে, আপনার বিদ্যমান সারণী / ডাটাবেসগুলিকে সঠিক চরিত্রের সেটগুলিতে রূপান্তর করতে হলে আপনার উপযুক্ত ALTERপ্রশ্নের প্রয়োজন হবে । নীচের মতো কিছু:

ALTER TABLE `table` CONVERT TO CHARACTER SET utf8 COLLATE utf8_unicode_ci;

বিকল্পভাবে এখানে একটি দুর্দান্ত পিএইচপি স্ক্রিপ্ট আছে যা এটি আপনার জন্য করে।


আমি আপনার নির্দেশাবলী অনুসরণ করেছি এবং ডকুমেন্টেশন লিঙ্কগুলি পরীক্ষা করেছি ... এখনও কয়েকটি সমস্যা রয়েছে (দেখুন ^)

যখনই আমি যোগ collation-server = utf8_general_ciকরতে mysqldঅধ্যায় মাইএসকিউএল পুনরায় আরম্ভ করা ব্যর্থ

লগ ফাইলের মধ্যে কি দেখতে পাচ্ছেন? এটি কেন ব্যর্থ হয়েছে তা আপনাকে একটি ত্রুটি বার্তা দেওয়া উচিত। আমি এটি গ্রহণ করি যে আপনার মাইএসকিএলডিটি সাধারণ সাধারণ চরিত্রের সেটটি অন্তর্ভুক্ত করে সংকলিত হয়েছিল?

হ্যাঁ আমার মনে হয় এটি ছিল ... কোন লগ ফাইল?

1
বিভাগের default-character-set = utf8আওতাভুক্ত লাইন ব্যতীত আমার জন্য (ডেবিয়ান 8, মাইএসকিউএল 5.5) কাজ করে [mysqld]। এটি খুব লাইন যুক্ত করার ফলে মাইএসকিএলডি চিরস্থায়ীভাবে পুনরায় আরম্ভ হতে শুরু করে। ইউনিকোড সমর্থন যদিও এই লাইনে ডাব্লু / ও দুর্দান্ত কাজ করে।
বাস

2

বেনের উত্তর ঠিক আছে, তবে সেটিংস পরিবর্তন করলে বিদ্যমান টেবিলের চরিত্রের সেটগুলি বা কোলেশনগুলি পুরোপুরি পরিবর্তিত হবে না। যথাযথ ALTER TABLE বিবৃতি দিয়ে এটি করুন।

মনে রাখবেন যে আপনি এটি নির্দিষ্ট না করলে ডাটাবেস ডিফল্ট অক্ষর সেটটিতে সারণী তৈরি করা হয়। এটি একটি প্রতি-ডাটাবেস সেটিং যা অলটার ডেটাবেসের সাথে সামঞ্জস্য করা যায়। এটি my.cnf এ সেট করা নেই।


1
নতুন ডাটাবেসগুলি ডিফল্ট মাইএসকিএল সেটিংসের উত্তরাধিকারী হবে, ঠিক আছে?
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.