bagaimana cara memasukkan karakter utf-8 mb4 (emoji di ios5) di mysql?
<p>saya menggunakan mysql 5.5.10, dan karakternya adalah</p><pre><code>| character\_set\_client | utf8mb4 | | character\_set\_connection | utf8mb4 | | character\_set\_database | utf8mb4 | | character\_set\_filesystem | binary | | character\_set\_results | utf8mb4 | | character\_set\_server | utf8mb4 | | character\_set\_system | utf8 | | character\_sets\_dir | /usr/share/mysql/charsets/ | | collation\_connection | utf8mb4\_general\_ci | | collation\_database | utf8mb4\_general\_ci | | collation\_server | utf8mb4\_general\_ci | </code></pre><p>saya mengubah utf8mb4 dari utf8 untuk emoji ios5. mereka diwakili oleh kode 4byte.</p><p>tetapi ketika saya memasukkan 3 emoji smiley, '???' ada di mysql.</p><p>mereka adalah 3f 3f 3f (hex).</p><p>saya dapat menyimpan emoji ios4 dengan baik, tetapi tidak untuk ios5.</p><p>bagaimana saya bisa menyimpan emoji ios5?</p><p>tolong bantu aku.</p>
<p>karakter unicode 4 byte belum banyak digunakan, jadi tidak semua aplikasi di luar sana mendukung sepenuhnya. mysql 5.5 berfungsi dengan baik dengan karakter 4 byte ketika dikonfigurasi dengan benar - periksa apakah komponen anda yang lain dapat bekerja dengannya juga.</p><p>berikut beberapa hal lain yang perlu diperiksa:</p><ul> <li> <p>pastikan semua rangkaian karakter default tabel dan bidang teks anda dikonversi ke utf8mb4, di samping menetapkan set karakter klien &amp; server, mis. <code>alter table mytable charset=utf8mb4, modify column textfield1 varchar(255) character set utf8mb4,modify column textfield2 varchar(255) character set utf8mb4;</code> dan seterusnya.</p> <p>jika data anda sudah dalam karakter utf8, itu harus dikonversi ke utf8mb4 di tempat tanpa masalah. seperti biasa, buat cadangan data anda sebelum mencoba!</p> </li> <li> <p>pastikan juga lapisan aplikasi anda menyetel karakter koneksi basis data ke utf8mb4. periksa ini benar-benar terjadi - jika anda menjalankan versi yang lebih lama dari pustaka klien mysql framework yang anda pilih, itu mungkin belum dikompilasi dengan dukungan utf8mb4 dan itu tidak akan mengatur charset dengan benar. jika tidak, anda mungkin harus memperbarui atau mengompilasinya sendiri.</p> </li> <li> <p>saat melihat data anda melalui klien mysql, pastikan anda menggunakan mesin yang dapat menampilkan emoji, dan jalankan <code>set names utf8mb4</code> sebelum menjalankan kueri.</p> </li> </ul><p>setelah setiap tingkat aplikasi anda dapat mendukung karakter baru, anda harus dapat menggunakannya tanpa korupsi.</p>
<p>seperti yang saya jawab <a href="https://dba.stackexchange.com/questions/2820/why-dont-my-my-cnf-settings-work/2822#2822">di sini</a> , anda dapat menambahkan bagian untuk setiap pengguna/host/db yang anda hubungkan menggunakan sintaks di <code>~/.my.cnf</code> anda:</p><pre><code>[clienthost1] # note: client + host1 user=myuser password=mypass database=dbname host=server.location.com </code></pre><p>setelah ini ada di pengguna anda <code>.my.cnf</code>, anda dapat menggunakannya dengan melakukan ini pada baris perintah:</p><pre><code>$ mysql --defaults-group-suffix=host1 </code></pre> <p>arsitektur innodb menuntut penggunaan empat tipe dasar halaman info</p><ul> <li>halaman data tabel</li> <li>halaman indeks tabel</li> <li>tabel metadata</li> <li> <a href="http://en.wikipedia.org/wiki/multiversion\_concurrency\_control"><strong> [~ # ~] mvcc [~ # ~] </strong></a> data (untuk mendukung isolasi transaksi dan <a href="http://en.wikipedia.org/wiki/acid"><strong> kepatuhan acid </strong></a> ) <ul> <li>segmen kembalikan</li> <li>batalkan spasi</li> <li>double write buffer (penulisan latar belakang untuk mencegah ketergantungan pada caching os)</li> <li>masukkan buffer (mengelola perubahan pada indeks sekunder yang tidak unik)</li> </ul> </li> </ul><p> <a href="http://www.scribd.com/doc/31337494/xtradb-innodb-internals-in-drawing"><strong> <em> lihat representasi pictorial dari ibdata1</em> </strong></a> </p><p>secara default, <a href="http://dev.mysql.com/doc/refman/5.5/en/innodb-parameters.html#sysvar\_innodb\_file\_per\_table">innodb\_file\_per\_table</a> dinonaktifkan. ini menyebabkan keempat jenis halaman info mendaratkan satu file bernama ibdata1. banyak orang mencoba menyebar data dengan membuat banyak file ibdata. ini dapat menyebabkan fragmentasi data dan halaman indeks.</p><p>inilah sebabnya saya sering <a href="https://stackoverflow.com/a/4056261/491757">merekomendasikan untuk membersihkan infrastruktur innodb, menggunakan file ibdata1 default dan tidak lebih</a> .</p><p>menyalin sangat berbahaya karena infrastruktur di mana innodb bekerja. ada dua infrastruktur dasar</p><ul> <li>innodb\_file\_per\_table dinonaktifkan</li> <li>innodb\_file\_per\_table diaktifkan</li> </ul><h1>innodb ( <a href="http://dev.mysql.com/doc/refman/5.5/en/innodb-parameters.html#sysvar\_innodb\_file\_per\_table">innodb\_file\_per\_table</a> dinonaktifkan)</h1><p>dengan <a href="http://dev.mysql.com/doc/refman/5.5/en/innodb-parameters.html#sysvar\_innodb\_file\_per\_table">innodb\_file\_per\_table</a> dinonaktifkan, semua jenis info innodb ini tinggal di dalam ibdata1. satu-satunya manifestasi dari setiap tabel innodb di luar ibdata1 adalah file .frm dari tabel innodb. menyalin semua data innodb sekaligus membutuhkan menyalin semua/var/lib/mysql.</p><p>menyalin tabel innodb individu sama sekali tidak mungkin. anda harus membuang mysql untuk mengekstrak dump tabel sebagai representasi logis dari data dan definisi indeks yang sesuai. anda kemudian akan memuat dump itu ke database lain di server yang sama atau server lain.</p><h1>innodb ( <a href="http://dev.mysql.com/doc/refman/5.5/en/innodb-parameters.html#sysvar\_innodb\_file\_per\_table">innodb\_file\_per\_table</a> diaktifkan)</h1><p>dengan <a href="http://dev.mysql.com/doc/refman/5.5/en/innodb-parameters.html#sysvar\_innodb\_file\_per\_table">innodb\_file\_per\_table</a> diaktifkan, data tabel dan indeksnya tinggal di folder database di sebelah file .frm. misalnya, untuk tabel db1.mytable, manifestasi dari tabel innodb di luar ibdata1 adalah:</p><ul> <li><code>/var/lib/mysql/db1/mytable.frm</code></li> <li><code>/var/lib/mysql/db1/mytable.ibd</code></li> </ul><h1>tablespace sistem <code>ibdata1</code></h1><p>semua metadata untuk db1.mytable masih berada di ibdata1 dan <em> sama sekali tidak ada jalan lain</em>. redo log dan data mvcc juga masih hidup dengan ibdata1.</p><p>ketika datang ke tabel fragmentasi, inilah yang terjadi pada ibdata1:</p><ul> <li><strong> <a href="http://dev.mysql.com/doc/refman/5.5/en/innodb-parameters.html#sysvar\_innodb\_file\_per\_table">innodb\_file\_per\_table</a> diaktifkan </strong>: anda dapat mengecilkan db1.mytables dengan <code>alter table db1.mytable engine=innodb;</code> atau <code>optimize table db1.mytable;</code>. ini menghasilkan /var/lib/mysql/db1/mytable.ibd secara fisik lebih kecil tanpa fragmentasi.</li> <li><strong> <a href="http://dev.mysql.com/doc/refman/5.5/en/innodb-parameters.html#sysvar\_innodb\_file\_per\_table">innodb\_file\_per\_table</a> dinonaktifkan </strong>: anda tidak dapat mengecilkan db1.mytables dengan <code>alter table db1.mytable engine=innodb;</code> atau <code>optimize table db1.mytable;</code> karena berada dengan ibdata1. menjalankan perintah mana pun sebenarnya, membuat tabel berdekatan dan lebih cepat untuk membaca dan menulis. sayangnya, itu terjadi pada akhir ibdata1. ini membuat ibdata1 tumbuh dengan cepat. <a href="https://stackoverflow.com/a/4056261/491757">ini sepenuhnya dibahas di pos pembersihan innodb saya</a> .</li> </ul><h1>peringatan (atau bahaya sebagai <a href="http://www.youtube.com/watch?v=rg0ochx16dg&amp;feature=related">robot akan mengatakan dalam lost in space</a> )</h1><p>jika anda berpikir untuk hanya menyalin file .frm dan .ibd, anda sejalan dengan dunia yang menyakitkan. menyalin file .frm dan .ibd dari tabel innodb hanya baik <strong> <em> jika dan hanya jika anda dapat menjamin bahwa id tablespace dari file .ibd cocok persis dengan entri tablespace id di metadata dari file ibdata1</em> </strong>.</p><p>saya menulis dua posting di dba stackexchange tentang konsep id tablespace ini</p><ul> <li> <a href="https://dba.stackexchange.com/questions/9500/table-compression-in-innodb/9555#9555">kompresi tabel dalam innodb?</a> (di bawah judul 'memulihkan database')</li> <li> <a href="https://dba.stackexchange.com/questions/6268/how-to-recover-an-innodb-table-whose-files-were-moved-around/6269#6269">cara memulihkan tabel innodb yang file-nya dipindahkan</a> </li> </ul><p>berikut ini adalah tautan yang sangat baik tentang cara memasang kembali file .ibd ke ibdata1 jika id tablespace tidak cocok: <a href="http://www.chriscalender.com/?tag=innodb-error-tablespace-id-in-file">http://www.chriscalender.com/?tag=innodb-error-tablespace-id-in- file</a> . setelah membaca ini, anda harus segera menyadari bahwa menyalin file .ibd benar-benar gila.</p><p>untuk innodb, anda hanya perlu memindahkan sesuatu ini</p><pre><code>create table db2.mytable like db1.mytable; insert into db2.mytable select * from db1.mytable; </code></pre><p>untuk membuat salinan tabel innodb.</p><p>jika anda memigrasikannya ke server db lain, gunakan mysqldump.</p><p>sehubungan dengan mencampur semua tabel innodb dari semua database, saya benar-benar dapat melihat kebijaksanaan dalam melakukannya. di perusahaan hosting db/web perusahaan saya, saya memiliki satu klien mysql yang memiliki tabel di satu basis data yang batasannya dipetakan ke tabel lain di basis data lain dalam instance mysql yang sama. dengan satu repositori metadata yang umum, itu membuat dukungan transaksional dan pengoperasian mvcc mungkin di beberapa basis data.</p> <p>dari baris perintah linux</p><pre><code>for proc\_to\_kill in `mysql -h... -u... -p... -a --skip-column-names -e"show processlist" | grep -v "system user" | awk '{print $1}'` ; do mysql -h... -u... -p... -a --skip-column-names -e"kill query ${proc\_to\_kill}" ; done </code></pre><p>anda bisa mengubah opsi grep di header loop for untuk menemukan pengguna tertentu atau string tertentu dalam kueri.</p><p>jika anda memiliki mysql 5.1 di mana daftar proses ada di information\_schema, anda bisa melakukan ini untuk menghasilkan perintah kill query dalam jumlah besar dari dalam klien mysql:</p><pre><code>select group\_concat(concat('kill query ',id,';') separator ' ') killquery from information\_schema.processlist where user&lt;&gt;'system user'\g </code></pre><p>anda bisa melakukan klausa where terhadap bidang info untuk mencari kueri tertentu, bidang time terhadap kueri yang sudah berjalan lama, atau bidang db terhadap database tertentu.</p> <p>pendekatan yang paling banyak digunakan yang pernah saya lihat adalah menggunakan ellipsis untuk menunjukkan bahwa ada lebih banyak teks, seperti ini:</p><p><img src="https://i.stack.imgur.com/o0usc.png" alt="alt text"></p><p>anda kemudian dapat memberikan tooltip saat mengarahkan kursor untuk menunjukkan nama lengkap kepada pengguna. pada mac os, apple mencoba untuk menyingkat teks sebagai langkah pertama. mereka melakukannya dengan mengurangi jarak antara huruf dan kata. idenya adalah untuk menunjukkan kepada anda sebanyak mungkin karakter sebelum menambahkan ellipsis sebagai pilihan terakhir.</p><p>saya telah melihat pendekatan lain yang jauh lebih elegan dalam aplikasi di suatu tempat di mana mereka memudar huruf terakhir yang dapat ditampilkan. saya tidak dapat mengingat nama aplikasi, tetapi tampilannya seperti ini:</p><p><img src="https://i.stack.imgur.com/lc3jv.png" alt="alt text"></p><p>ini jelas lebih banyak pekerjaan, tetapi jelas terlihat lebih modern dan berkelas. saya terkejut bahwa ini belum menjadi fitur standar mac os. omong-omong, apple <em>tidak</em> menggunakan fading di spotlight untuk menunjukkan kepada anda path file yang panjang:</p><p><img src="https://i.stack.imgur.com/cr1nu.png" alt="alt text"></p><p>selain path file yang pudar, lihat file "yllistenerbase.cpp": anda dapat melihat bahwa file itu terkondensasi jika anda membandingkannya dengan file .h-nya. jalur file dengan efek fading ada di bagian bawah jendela.</p> <p>semuanya sesuai dengan standar ansi:</p><p> <a href="http://support.microsoft.com/kb/316626">trailing blank menjelaskan</a> :</p><blockquote> <p>sql server mengikuti spesifikasi ansi/iso sql-92 (bagian 8.2, aturan umum # 3) tentang cara membandingkan string dengan spasi. standar ansi membutuhkan padding untuk string karakter yang digunakan dalam perbandingan sehingga panjangnya cocok sebelum membandingkannya. padding secara langsung mempengaruhi semantik predikat klausa where dan having dan perbandingan string transact-sql lainnya. sebagai contoh, transact-sql menganggap string 'abc' dan 'abc' setara untuk sebagian besar operasi perbandingan.</p> <p>satu-satunya pengecualian untuk aturan ini adalah predikat like. ketika sisi kanan dari ekspresi predikat like fitur nilai dengan spasi tambahan, sql server tidak memadatkan dua nilai dengan panjang yang sama sebelum perbandingan terjadi. karena tujuan dari predikat like, menurut definisi, adalah untuk memfasilitasi pencarian pola daripada tes persamaan string sederhana, ini tidak melanggar bagian dari spesifikasi ansi sql-92 yang disebutkan sebelumnya.</p> </blockquote><p>berikut adalah contoh umum dari semua kasus yang disebutkan di atas:</p><pre><code>declare @a varchar(10) declare @b varchar(10) set @a = '1' set @b = '1 ' --with trailing blank select 1 where @a = @b and @a not like @b and @b like @a </code></pre><p>inilah beberapa detail lebih lanjut tentang <a href="http://msdn.microsoft.com/en-us/library/ms179859.aspx">mengeklik kosong dan klausa <code>like</code></a> .</p><p><strong> [~ # ~] tetapi [~ # ~] </strong> jika anda ingin membuatnya berbeda - anda dapat memutuskan untuk menggunakan fungsi <code>datalength</code> alih-alih <code>len</code>, karena</p><pre><code>select 1 where len('john ') = len('john') </code></pre><p>akan menempatkan anda 1 sebagai gantinya</p><pre><code>select 1 where datalength('john ') = datalength('john') </code></pre><p><strong> solusinya </strong> adalah</p><ul> <li>untuk menggunakan fungsi datalength untuk membedakan antara string</li> <li>untuk memasukkan string ke dalam tipe nvarchar - mungkin lebih baik menyatakan tipe ini ke parameter sp</li> </ul> <p>tersandung pada ini, anehnya sulit ditemukan lagi nanti. menempatkan di sini untuk anak cucu:</p><pre><code>sudo yum install nodejs npm --enablerepo=epel </code></pre><p><strong>edit 3:</strong> pada juli 2016, <strong>edit 1</strong> tidak lagi berfungsi untuk nodejs 4 (dan <strong>edit 2</strong> keduanya). jawaban ini ( <a href="https://stackoverflow.com/a/35165401/78935">https://stackoverflow.com/a/35165401/78935</a> ) memberikan one-liner sejati.</p><p><strong>edit 1:</strong> jika anda mencari nodejs 4, silakan coba repo pengujian epel:</p><pre><code>sudo yum install nodejs --enablerepo=epel-testing </code></pre><p><strong>edit 2:</strong> untuk memutakhirkan dari nodejs 0.12 diinstal melalui repo epel menggunakan perintah di atas, ke nodejs 4 dari repo pengujian epel, silakan ikuti langkah-langkah ini:</p><pre><code>sudo yum rm nodejs sudo rm -f /usr/local/bin/node sudo yum install nodejs --enablerepo=epel-testing </code></pre><p>paket-paket yang lebih baru menempatkan binari simpul di <code>/usr/bin</code>, bukan <code>/usr/local/bin</code>.</p><p><em>dan latar belakang:</em></p><p>opsi <code>--enablerepo=epel</code> menyebabkan <code>yum</code> untuk mencari paket dalam repositori epel.</p><blockquote> <p>epel (paket ekstra untuk perusahaan linux) adalah proyek repositori berbasis komunitas dan open source dari tim fedora yang menyediakan 100% paket perangkat lunak tambahan berkualitas tinggi untuk distribusi linux termasuk rhel (red hat enterprise linux), centos, dan scientific linux. proyek epel bukan bagian dari rhel/cent os tetapi dirancang untuk distribusi linux utama dengan menyediakan banyak paket sumber terbuka seperti jaringan, sys admin, pemrograman, pemantauan dan sebagainya. sebagian besar paket epel dikelola oleh fedora repo.</p> <p><em>via <a href="http://www.tecmint.com/how-to-enable-epel-repository-for-rhel-centos-6-5/">http://www.tecmint.com/how-to-enable-epel-repository-for-rhel-centos-6-5/</a> </em></p> </blockquote> pola kelima didapatkan dengan menambahkan 9 koin dari pola sebelumnya. sehingga yang tepat untuk mengisi titik-titik pada tabel adalah 1 + 3 + 5 + 7 + 9.

jadi, jawaban yang tepat adalah c. <p>anda harus menggunakan penyihir impor/ekspor di ssms untuk memigrasi semuanya</p><p>ada <strong>tidak</strong> "downgrade" mungkin menggunakan cadangan/pemulihan atau lepas/pasang</p> [+]
- dapet kosa kata baru
- dapet banyolan baru
- dapet rekan sesama pencinta stress
- dapet temen chat gokil
- gak usah pusing kalo lagi gak ada kerjaan, langsung aja login ke y!a


[-]
- kena 'tilang' pelanggaran dari y!a hahhahahha


(n\_n)


+ emo ~ error <p>mungkin kebalikan dari yang anda inginkan, tetapi kami memiliki dalam beberapa kasus kota dengan beragam etnis memilih untuk menampilkan bahasa teratas dengan nama dan menambahkan ikon globe untuk terjemahan lainnya.</p><p><img src="https://i.stack.imgur.com/5kvu7.png" alt="alt text"></p><p>anda juga dapat mencoba membuat ikon dengan singkatan nama bahasa di sebelah nama sebenarnya.</p><p><img src="https://i.stack.imgur.com/jc89r.png" alt="alt text"></p>